精华内容
下载资源
问答
  • 几年前,他完成了自己的第一本著作,逃学去旅行《一个人走世界——大学4年200城的旅行》。而现在,他正执行着他的“辞职去旅行”计划。他好心的老板还多给他发了一个月的工资。从南京,到台湾,从曼谷到斯里兰卡……...

    旅行的梦想并不遥远,只要一颗流浪四方的心。”——唐人立

    最早认识唐人立的时候,他还是大二的学生。他独自完成了“南京20年规划地图”。几年前,他完成了自己的第一本著作,逃学去旅行《一个人走世界——大学4年200城的旅行》。而现在,他正执行着他的“辞职去旅行”计划。他好心的老板还多给他发了一个月的工资。从南京,到台湾,从曼谷到斯里兰卡……2个月来,唐人立走过太多地方。是他原创的图片和文字,让我渐渐对自助游产生了兴趣,并决定记录下旅游的每一刻。

    于是,我开始着手制作了这个旅行地图。可能它还不够完善,但的确它能给我们带来太多的正能量。希望有越来越多的人,能够用这种方式,去记录自己的旅途。THX。

     

     

    代码其实很简单,简单的地图展示,简单的覆盖物,简单的信息窗口。

    你要做的,其实只是申请一个key:http://yuntu.amap.com/datamanager/index.html

    然后将下面的代码复制到你的网站上,并使用你自己的key。

     

    第一步、地图展示

    中心点坐标可以通过坐标拾取工具来找:http://zhaoziang.com/amap/picpoint.html

    地图级别在国内建议12-18,国外建议在4-6.

    var mapObj;  
    //初始化地图对象,加载地图  
    function mapInit(){  
        mapObj = new AMap.Map("iCenter",{center:new AMap.LngLat(121.498586,31.239637),  
            level:17});   
        addBuildings();  
    }  

     

    第二步、添加覆盖物

    覆盖物,就是marker,这里用的默认的覆盖物。蓝色的,挺好看。

    //实例化点标记  
    function addMarker(){  
        marker=new AMap.Marker({                    
        icon:"http://webapi.amap.com/images/marker_sprite.png",  
        position:new AMap.LngLat(116.405467,39.907761)  
        });  
        marker.setMap(mapObj);  //在地图上添加点  
    }  

     

    第三步、添加信息窗口

    信息窗口用了自定义信息窗口,因为觉得兰蓝色的比较好看。

    自定义信息窗口,分为3个部分,头,中间,尾巴。

    关闭按钮也可以使用自定义图片。

    //构建自定义信息窗体   
    function createInfoWindow(title,content){  
        var info = document.createElement("div");  
        info.className = "info";  
        // 定义顶部标题  
        var top = document.createElement("div");  
        top.className = "info-top";  
          var titleD = document.createElement("div");  
          titleD.innerHTML = title;  
          var closeX = document.createElement("img");  
          closeX.src = "http://webapi.amap.com/images/close2.gif";  
          closeX.onclick = closeInfoWindow;  
            
        top.appendChild(titleD);  
        top.appendChild(closeX);  
        info.appendChild(top);  
        // 定义中部内容  
        var middle = document.createElement("div");  
        middle.className = "info-middle";  
        middle.innerHTML = content;  
        info.appendChild(middle);  
          
        // 定义底部内容  
        var bottom = document.createElement("div");  
        bottom.className = "info-bottom";  
        var sharp = document.createElement("img");  
        sharp.src = "http://webapi.amap.com/images/sharp.png";  
        bottom.appendChild(sharp);    
        info.appendChild(bottom);  
        return info;  
    } 

     

     

    第四步、结果面板

    结果面板只要是为了鼠标放在上面时,可以打开相应的信息窗口。

    HTML结构:

    <li><a href="javascript:void(0);" onmouseover="myOpen2();">曼谷</a></li>
    <li><a href="javascript:void(0);" onmouseover="myOpen();">斯里兰卡</a></li>

    信息窗口展开代码:

    function myOpen(){
        infoWindow.open(mapObj,marker.getPosition());
    }
    function myOpen2(){
        infoWindow2.open(mapObj,marker2.getPosition());
    }

    --------------------------------------------------------------------------

    全部源代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>逃学去旅行</title>
    <!-- 页面布局样式 -->
    <link rel="stylesheet" type="text/css" href="http://api.amap.com/Public/css/demo.Default.css" /> 
    <script language="javascript" src="http://webapi.amap.com/maps?v=1.2&key=【您的key】"></script>
    <style>
    #iCenter{float:left;width:600px;height:600px;}
    .infobox{float:left;width:200px;height:600px;text-align:center;padding:10px 0;background:#efefef;}
    .infobox h1{margin:0 0 20px;}
    .infobox li a{text-decoration:none;font-size:20px;width:100%;display:block;padding:30px 0;border:1px dashed #ccc;border-width:1px 0;}
    .infobox li a:hover{background:#ccc;}
    </style>
    </head>
    <body onLoad="mapInit()"> 
        <div id="iCenter"></div>    
        <div class="infobox">
            <h1>逃学去旅行2</h1>
            <ul>
                <li><a href="javascript:void(0);" onmouseover="myOpen2();">曼谷</a></li>
                <li><a href="javascript:void(0);" onmouseover="myOpen();">斯里兰卡</a></li>
            </ul>
        </div>
     </div>
    </body>
    <script language="javascript">
    var mapObj,toolBar;
    var marker,marker2;
    //初始化地图对象,加载地图
    function mapInit(){
        mapObj = new AMap.Map("iCenter",{center:new AMap.LngLat(88.505859,21.371244),level:4});
        //地图中添加地图操作ToolBar插件
        mapObj.plugin(["AMap.ToolBar"],function(){      
            toolBar = new AMap.ToolBar(); 
            mapObj.addControl(toolBar);     
        });    
        //地图初始化时,在地图上添加一个marker标记,鼠标点击marker可弹出自定义的信息窗体
        addMarker();    
    }
    //添加marker标记
    function addMarker(){
       mapObj.clearMap();
       marker = new AMap.Marker({                    
           map:mapObj,                   
           position:new AMap.LngLat(79.914551,6.871893), //位置-斯里兰卡 
           icon:"http://webapi.amap.com/images/0.png" //复杂图标       
       }); 
       marker2 = new AMap.Marker({                    
           map:mapObj,                   
           position:new AMap.LngLat(100.546875,13.731381), //位置-曼谷 
           icon:"http://webapi.amap.com/images/0.png" //复杂图标       
       }); 
       AMap.event.addListener(marker,'mouseover',function(){ //鼠标点击marker弹出自定义的信息窗体
             infoWindow.open(mapObj,marker.getPosition());  
       });  
       AMap.event.addListener(marker2,'mouseover',function(){ //鼠标点击marker弹出自定义的信息窗体
             infoWindow2.open(mapObj,marker2.getPosition());  
       });  
    }
    
    //实例化信息窗体
    var infoWindow = new AMap.InfoWindow({
            isCustom:true,  //使用自定义窗体
            content:createInfoWindow('斯里兰卡&nbsp;&nbsp;<span style="font-size:11px;color:#F00;">采茶人</span>',"<img src='taoxue_1.jpg' style='width:92px;float:left;margin:0 5px 5px 0;'><img src='taoxue_2.jpg' style='width:92px;float:left;margin:0 5px 5px 0;'><img src='taoxue_3.jpg' style='width:92px;float:left;margin:0 5px 5px 0;'>尽管斯里兰卡人民并不富裕,但是他们对生活很满足。每一个微笑的斯里兰卡人的脸上,更多的是他们对待生活的热情。<a href='http://weibo.com/534004234'>@唐人立逃学去旅行</a>"),
            size:new AMap.Size(300, 0),
            offset:new AMap.Pixel(0, -50)//-113, -140
        });
    var infoWindow2 = new AMap.InfoWindow({
            isCustom:true,  //使用自定义窗体
            content:createInfoWindow('曼谷&nbsp;&nbsp;<span style="font-size:11px;color:#F00;">泰国泼水节</span>',"<img src='taoxue_7.jpg' style='width:92px;float:left;margin:0 5px 5px 0;'><img src='taoxue_6.jpg' style='width:92px;float:left;margin:0 5px 5px 0;'><img src='taoxue_5.jpg' style='width:92px;float:left;margin:0 5px 5px 0;'>如果说青春是一场说走就走的旅行,那么泰国的泼水节才更好地诠释着什么是青春。一起疯狂吧!<a href='http://weibo.com/534004234'>@唐人立逃学去旅行</a>"),
            size:new AMap.Size(300, 0),
            offset:new AMap.Pixel(0, -50)//-113, -140
        });
    
    //构建自定义信息窗体 
    function createInfoWindow(title,content){
        var info = document.createElement("div");
        info.className = "info";
        // 定义顶部标题
        var top = document.createElement("div");
        top.className = "info-top";
          var titleD = document.createElement("div");
          titleD.innerHTML = title;
          var closeX = document.createElement("img");
          closeX.src = "http://webapi.amap.com/images/close2.gif";
          closeX.onclick = closeInfoWindow;
          
        top.appendChild(titleD);
        top.appendChild(closeX);
        info.appendChild(top);
        // 定义中部内容
        var middle = document.createElement("div");
        middle.className = "info-middle";
        middle.innerHTML = content;
        info.appendChild(middle);
        
        // 定义底部内容
        var bottom = document.createElement("div");
        bottom.className = "info-bottom";
        var sharp = document.createElement("img");
        sharp.src = "http://webapi.amap.com/images/sharp.png";
        bottom.appendChild(sharp);  
        info.appendChild(bottom);
        return info;
    }  
    //关闭信息窗体
    function closeInfoWindow(){
        mapObj.clearInfoWindow();
    }
    function myOpen(){
        infoWindow.open(mapObj,marker.getPosition());
    }
    function myOpen2(){
        infoWindow2.open(mapObj,marker2.getPosition());
    }
    </script>
    </html>

     

    页面地址:http://zhaoziang.com/amap/taoxue.html

     

     效果图:

    展开全文
  • 在使用TensorFlow训练神经网络时,首先面临的问题是:网络的输入此篇文章,教大家将自己的数据集制作成TFRecord格式,feed进网络,除了TFRecord格式,TensorFlow也支持其他格式的数据,此处就不再介绍了。...

    在使用TensorFlow训练神经网络时,首先面临的问题是:网络的输入

    此篇文章,教大家将自己的数据集制作成TFRecord格式,feed进网络,除了TFRecord格式,TensorFlow也支持其他格

    式的数据,此处就不再介绍了。建议大家使用TFRecord格式,在后面可以通过api进行多线程的读取文件队列。

    1. 原本的数据集

    此时,我有两类图片,分别是xiansu100,xiansu60,每一类中有10张图片。

    2.制作成TFRecord格式

    tfrecord会根据你选择输入文件的类,自动给每一类打上同样的标签。如在本例中,只有0,1 两类,想知道文件夹名与label关系的,可以自己保存起来。

    #生成整数型的属性

    def _int64_feature(value):

    return tf.train.Feature(int64_list = tf.train.Int64List(value = [value]))

    #生成字符串类型的属性

    def _bytes_feature(value):

    return tf.train.Feature(bytes_list = tf.train.BytesList(value = [value]))

    #制作TFRecord格式

    def createTFRecord(filename,mapfile):

    class_map = {}

    data_dir = '/home/wc/DataSet/traffic/testTFRecord/'

    classes = {'xiansu60','xiansu100'}

    #输出TFRecord文件的地址

    writer = tf.python_io.TFRecordWriter(filename)

    for index,name in enumerate(classes):

    class_path=data_dir+name+'/'

    class_map[index] = name

    for img_name in os.listdir(class_path):

    img_path = class_path + img_name #每个图片的地址

    img = Image.open(img_path)

    img= img.resize((224,224))

    img_raw = img.tobytes() #将图片转化成二进制格式

    example = tf.train.Example(features = tf.train.Features(feature = {

    'label':_int64_feature(index),

    'image_raw': _bytes_feature(img_raw)

    }))

    writer.write(example.SerializeToString())

    writer.close()

    txtfile = open(mapfile,'w+')

    for key in class_map.keys():

    txtfile.writelines(str(key)+":"+class_map[key]+"\n")

    txtfile.close()

    此段代码,运行完后会产生生成的.tfrecord文件。

    3. 读取TFRecord的数据,进行解析,此时使用了文件队列以及多线程

    #读取train.tfrecord中的数据

    def read_and_decode(filename):

    #创建一个reader来读取TFRecord文件中的样例

    reader = tf.TFRecordReader()

    #创建一个队列来维护输入文件列表

    filename_queue = tf.train.string_input_producer([filename], shuffle=False,num_epochs = 1)

    #从文件中读出一个样例,也可以使用read_up_to一次读取多个样例

    _,serialized_example = reader.read(filename_queue)

    # print _,serialized_example

    #解析读入的一个样例,如果需要解析多个,可以用parse_example

    features = tf.parse_single_example(

    serialized_example,

    features = {'label':tf.FixedLenFeature([], tf.int64),

    'image_raw': tf.FixedLenFeature([], tf.string),})

    #将字符串解析成图像对应的像素数组

    img = tf.decode_raw(features['image_raw'], tf.uint8)

    img = tf.reshape(img,[224, 224, 3]) #reshape为128*128*3通道图片

    img = tf.image.per_image_standardization(img)

    labels = tf.cast(features['label'], tf.int32)

    return img, labels

    4. 将图片几个一打包,形成batch

    def createBatch(filename,batchsize):

    images,labels = read_and_decode(filename)

    min_after_dequeue = 10

    capacity = min_after_dequeue + 3 * batchsize

    image_batch, label_batch = tf.train.shuffle_batch([images, labels],

    batch_size=batchsize,

    capacity=capacity,

    min_after_dequeue=min_after_dequeue

    )

    label_batch = tf.one_hot(label_batch,depth=2)

    return image_batch, label_batch

    5.主函数

    if __name__ =="__main__":

    #训练图片两张为一个batch,进行训练,测试图片一起进行测试

    mapfile = "/home/wc/DataSet/traffic/testTFRecord/classmap.txt"

    train_filename = "/home/wc/DataSet/traffic/testTFRecord/train.tfrecords"

    # createTFRecord(train_filename,mapfile)

    test_filename = "/home/wc/DataSet/traffic/testTFRecord/test.tfrecords"

    # createTFRecord(test_filename,mapfile)

    image_batch, label_batch = createBatch(filename = train_filename,batchsize = 2)

    test_images,test_labels = createBatch(filename = test_filename,batchsize = 20)

    with tf.Session() as sess:

    initop = tf.group(tf.global_variables_initializer(),tf.local_variables_initializer())

    sess.run(initop)

    coord = tf.train.Coordinator()

    threads = tf.train.start_queue_runners(sess = sess, coord = coord)

    try:

    step = 0

    while 1:

    _image_batch,_label_batch = sess.run([image_batch,label_batch])

    step += 1

    print step

    print (_label_batch)

    except tf.errors.OutOfRangeError:

    print (" trainData done!")

    try:

    step = 0

    while 1:

    _test_images,_test_labels = sess.run([test_images,test_labels])

    step += 1

    print step

    # print _image_batch.shape

    print (_test_labels)

    except tf.errors.OutOfRangeError:

    print (" TEST done!")

    coord.request_stop()

    coord.join(threads)

    此时,生成的batch,就可以feed进网络了。

    以上这篇将自己的数据集制作成TFRecord格式教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    本文标题: 将自己的数据集制作成TFRecord格式教程

    本文地址: http://www.cppcns.com/jiaoben/python/300635.html

    展开全文
  • 大多数时候,当尝试新库,破解原型或遵循教程时,我发现自己需要一些波斯数据,因此我决定制作波斯版本 。 您可以在这里运行它,并且可以在您开发中免费使用它: : 。 希望您会发现它有用。 可用资源 让...
  • 今天文章主要介绍如何利用地图API实现自定义地图。 百度地图API目前默认支持两种地图类型(map type):普通图和三维图,它们分别通过常量BMAP_NORMAL_MAP和BMAP_PERSPECTIVE_MAP来表示,在1.2版本中这两个

    转载地址:http://blog.csdn.net/sup_heaven/article/details/8461586



    今天的文章主要介绍如何利用地图API实现自定义地图。

    百度地图API目前默认支持两种地图类型(map type):普通图和三维图,它们分别通过常量BMAP_NORMAL_MAP和BMAP_PERSPECTIVE_MAP来表示,在1.2版本中这两个常量实际上是MapType对象的实例。当然开发者也可以自己实例化一个MapType从而实现一个自定义的地图。

    切图工具的使用

    我们先从切图工具的使用开始,接着再分析该工具产生的代码来详细了解自定义地图的方法。切图工具放在了github上,具体地址为:https://github.com/jiazheng/BaiduMapTileCutter,进入后请下载TileCutter.exe:

    注意,该工具是基于.NET平台开发的,所以要求有.NET Framework 4 以上的版本。

    启动这个exe后会出现这个界面:

    首先我们要做的就是选择一张图片作为地图的底图(图片下载自这里):

    点击下一步后需要设置输出的目录,这里我们直接选择桌面:

    继续下一步,这里要设置输出类型,我们使用默认值,即图块和相关代码都由工具生成:

    坐标设置我们使用默认值,即图片的中心点所在的位置。由于我们制作的是独立的地图类型,所以中心点设置为0, 0即可。

    级别范围设置:我们使用自定义,将范围设置为5到10级,原图放置在第10级,这样5到9级工具就会自动缩小图片。建议原图所在级别与最大级别一致,否则高于原图所在级别的时候图片会发虚(因为工具会将图片进行放大处理)。

    设置地图类型的名称:

    一切就绪,最后可以确认所有的信息是否正确。然后就可以点击“开始切图”了。

    完成了:

    这时我们会发现桌面多了一个index.html和一个tiles文件夹。我们打开index.html会看到结果:

    源代码解析

    现在再来看看这个页面的代码部分:

    复制代码
    <!DOCTYPE html>
    <html>
    <head>
    <title>自定义地图类型</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
    </head>
    <body>
    <div id="map" style="width:800px;height:540px"></div>
    <script type="text/javascript">
    var tileLayer = new BMap.TileLayer();
    tileLayer.getTilesUrl = function(tileCoord, zoom) {
        var x = tileCoord.x;
        var y = tileCoord.y;
        return 'tiles/' + zoom + '/tile' + x + '_' + y + '.png';
    }
    var MyMap = new BMap.MapType('MyMap', tileLayer, {minZoom: 5, maxZoom: 10});
    var map = new BMap.Map('map', {mapType: MyMap});
    map.addControl(new BMap.NavigationControl());
    map.centerAndZoom(new BMap.Point(0, 0), 10);
    </script>
    </body>
    </html>
    复制代码

    代码先创建了一个TileLayer实例,它代表一个图层,接着实现getTilesUrl方法提供图片的路径。getTilesUrl方法由API在铺图的时候进行调用,调用时会提供图块编号和级别信息,开发者要做的就是根据图块编号和级别信息返回正确图片地址(有关坐标和图块编号的内容可以阅读此文)。

    下面代码创建一个MapType实例,第一个参数为地图类型的名字,第二个参数为地图类型所对应的图层,这里我们直接传递之前创建的TileLayer实例,后面是一些可选的配置参数,这里指定了最小级别和最大级别。

    后面的代码就很简单了,创建map实例,并通过配置参数指定地图类型为MyMap。

    如果大家有月球或火星的图片,那么创建一个月球地图或者火星地图也就不是一件难事了。


    展开全文
  • 如何用 OpenCV 制作透明渐变蒙版?

    万次阅读 2018-08-14 19:55:16
    OpenCV 可以进行一系列图像处理,也能够直接绘制图片,但涉及到一些复杂图像处理时,没有现成 API 可以使用,这个时候需要我们自己实现代码。 本文介绍如何利用现成 API 去实现一个比较复杂,但可能比较...

    OpenCV 可以进行一系列的图像处理,也能够直接的绘制图片,但涉及到一些复杂的图像处理时,没有现成的 API 可以使用,这个时候需要我们自己实现代码。

    本文介绍如何利用现成的 API 去实现一个比较复杂,但可能比较常见的图像处理操作,那就时给图片添加一个透明渐变的效果。

    大家可以看看效果图。

    这里写图片描述

    左边的图像是原始图像,右边的图像经过处理添加了一层蒙版。

    需要说明的是,本文的代码基于 OpenCV3.3 和 python2.7 版本编写。

    如何制作渐变效果?

    我的思路是先创立一幅透明的图像,然后在透明的图像上进行像素点颜色值的操作。

    这里写图片描述

    上面右边的图像就是我创建的渐变图像,它大小与原图片一样的。

    我以垂直渐变为例说明。

    如何实现这样的渐变呢?

    我们知道 RGB 模式下,每个颜色通道的取值范围是 0 ~ 255。

    我们可以给予一个起始颜色,(255,255,0)。

    然后再给定一个结束颜色,(0,0,0)。

    不难发现,每个通道有颜色的差距。

    渐变是有范围的,范围可以用 X 和 Y 轴上的像素距离表示。

    那么,建立一个公式让距离与颜色的变化产生联系,也就不难理解。

    比如,所有的 y 坐标值为 0 的像素颜色都为 (255,255,0),这个起始颜色用 color_start 表示,所有的 y 坐标值为 512 的像素颜色都为 (0,0,0),用 color_end 表示渐变结束颜色。

    渐变的颜色距离 dist 是 512 - 0 = 512

    每个颜色通道也有颜色变化,我们分别处理就好了。

    以红色通道为例。

    渐变距离是 512,颜色变化幅度是 0 - 255 = -255.

    我们不难得到一个颜色变化的系数 g_r

    g_r = -255 / 512 = -0.498

    有了这个系数,就可以通过公式计算出相对于渐变开始的位置的每个坐标颜色值。

    color_dst = color_start + dist * g_r

    3 个颜色通道分别处理,就可以得到完整的渐变图像。

    代码如下:

    def vertical_grad(src,color_start,color_end):
        h = src.shape[0]
    
        print type(src)
    
        # 创建一幅与原图片一样大小的透明图片
        grad_img = np.ndarray(src.shape,dtype=np.uint8)
    
        # opencv 默认采用 BGR 格式而非 RGB 格式
        g_b = float(color_end[0] - color_start[0]) / h
        g_g = float(color_end[1] - color_start[1]) / h
        g_r = float(color_end[2] - color_start[2]) / h
    
        for i in range(h):
            for j in range(src.shape[1]):
    
                    grad_img[i,j,0] = color_start[0] + i * g_b
                    grad_img[i,j,1] = color_start[1] + i * g_g
                    grad_img[i,j,2] = color_start[2] + i * g_r
    
        return grad_img

    我们可以写代码测试一下。

    if __name__ == '__main__':
        img = cv2.imread('../lena.jpg')
        grad_img = vertical_grad(img,(0,0,255),(0,0,0))
    
        cv2.imshow('lena',img)
        cv2.imshow('gradients',grad_img)
    
        cv2.waitKey()
        cv2.destroyAllWindows()

    这里写图片描述

    但有了渐变图像还不够,我们需要将渐变应用到原始图像当中。

    OpenCV 图像混合

    这个其实很简单,只要借助于 OpenCV 自带的混合方法就好了。

    blend = cv2.addWeighted(img,1.0,test,0.6,0.0)

    第一个参数是要混合的原始图片,第二个参数对应第一张图片的 alpha 值,第三个参数是要混合的图像,它与第一张图片的尺寸和通道都是一致的,后面的参数代表混合时,它的 alpha 取值。最后一位是 gamma 参数,默认为 0.

    alpha 就是透明度的参数,在上面代码中,我让原始图片保持了 1.0 的透明度,而让它上面的渐变图像只有 0.6,最终实现了图像的混合操作。

    测试代码:

    img = cv2.imread('../lena.jpg')
    
    grad_img = vertical_grad(img,(0,255,255),(0,0,0))
    blend = cv2.addWeighted(img,1.0,grad_img,0.6,0.0)
    
    cv2.imshow('lena',img)
    cv2.imshow('gradients',grad_img)
    cv2.imshow('blend',blend)
    
    q = cv2.waitKey()
    cv2.destroyAllWindows()

    效果如下:
    这里写图片描述

    本文只讲了一个方向的渐变效果,其他方向大家可以自己思考一下,想想怎么实现,其实思路差不多。

    展开全文
  • 最近由于工作需要, 需要迅速掌握tensorflow这一块基础知识, 今天就讲一讲如何图片转化为tfrecord文件进行数据保存, 然后从tfrecord数据文件中再加载出原图片。 这一块不涉及过多理论知识, 需要熟练掌握...
  • 已经有了大量相关文章进行介绍,无非都是如何调用系统API之类方法,但是在.Net中调用API却相对比较麻烦,所以使用.Net制作个性化窗体文章也有一些,一般都是使用透明背景加图片的方式,所以不能移动或者不能...
  • 专栏作品使用Visual C#...已经有了大量相关文章进行介绍,无非都是如何调用系统API之类方法,但是在.Net中调用API却相对比较麻烦,所以使用.Net制作个性化窗体文章也有一些,一般都是使用透明背景加图片的方式
  • 《Bot Framework》是微软开发的一款可让任何人制作自己的聊天机器人。该工具可以理解自然语言并对图片进行分析等,初期开放了 22 个可集成到应用的 API。 首先说到Bot大家的第一反应就是机器人,但是微软的Bot不是...
  • 水印可以自己自己制作,也可以用代码写。 我这里主要写如何添加到照片上面。 UWP和WP8.1添加方法一样。代码是通用。 UWP和WP8.1没有像WPF和WINFROM中darw这样简便的API可以来用,但是可以提取字节,只好先...
  • 第3章 打造自己的图像识别模型 50 3.1 微调(Fine-tune)的原理 51 3.2 数据准备 52 3.3 使用TensorFlow Slim微调模型 56 3.3.1 下载TensorFlow Slim的源代码 56 3.3.2 定义新的datasets文件 57 3.3.3 准备...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0170 如何统计两个子字符串之间字符个数 111 0171 判断字符在字符串中出现个数 111 0172 在语句中查找汉字个数 112 0173 如何统计中英文个数 112 5.5 字符串其他操作 113 0174 返回指定字符串...
  • 昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供...
  • 前后端都分离了,该搞个好用的API管理系统了! 服务器软件大盘点! 几款提升效率和B格软件神器 我常用在线工具网站 应用框架 Spring系列框架 Spring Boot 应用程序启动过程探秘 SpringBoot 中 @...
  • 两个框架有他们自己的开发团队和日标 ■ Kohana2.x使用MC设计模式,而 Kohana3.x使用HMVC设计模式 Ohana2.x是建立在以前的老2.x版木的基础上的,而 Kohana3.x是一个没有任何历史遗留 问题的全新框架结构 ■老的2.x戕本...
  • - 数据连续不断如何何操作 用Stream就会解决。因为Node Stream 是对连续数据进行分块后一个抽象,也就是不需要等待资源完全加载后再操作。 标准Buffer处理方式: <p><img alt="" src=...
  • 实例242 将自己的程序永远置前 实例243 随桌面分辨率变化的程序界面 实例244 磁性窗体 8.4 窗体标题栏应用实例 实例245 闪烁的窗体标题栏 实例246 拖动没有标题栏的窗体 实例247 禁用窗体最大化、最小化或...
  • asp.net知识库

    2015-06-18 08:45:45
    突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP...
  • Web前端工程师修炼之道(第4版),完整扫描版

    千次下载 热门讨论 2015-12-29 10:00:17
    你是否也曾想过自己创建网页,但却苦于没有经验?那么从现在开始学习吧!本书由浅入深地讲解了Web设计一些重要概念、基本原理,以及HTML、CSS和JavaScript具体使用方法与技巧。当你读完本书后,将会掌握创建适用...
  • VB网络编程实例

    千次下载 热门讨论 2007-05-29 15:46:04
    ◆ 119.htm 在桌面上建立一个 Internet 快捷键 ◆ 120.htm 怎样接收电子邮件(POP3协议简介) ◆ 121.htm 怎样用VB得知系统当前是否处于internet链结状态 ◆ 122.htm 制作自己的网络搜索软件 ...
  • 8.4 打造自己的数据库存储——SQLite存储方式 141 8.4.1 Android中对数据库操作 141 8.4.2 完整地操作数据库——日记本实例 147 8.5 我的数据你来用——ContentProvider介绍 155 8.5.1 初识ContentProvider 155...
  • 1.2 计算机生成的图片用在哪里 1.2.1 艺术、娱乐和出版行业 1.2.2 计算机图形学、感知和图像处理 1.2.3 过程监视 1.2.4 仿真显示 1.2.5 计算机辅助设计 1.2.6 科学分析与体可视化 1.3 计算机图形学中制作图像的基本...
  • Evolving Objects:基于模板的,ANSI C++演化计算库,能够帮助你非常快速地编写出自己的随机优化算法。 frugally-deep:使用Keras模型的C++库,只有头文件。 Genann:简单的神经网络C库。 MXNet:轻量级、便携、...
  • 将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
  • 实例054 如何关闭MDI类型窗体中子窗体 63 实例055 向提示框中添加图标 64 第2章 控件应用 67 2.1 TEdit控件应用典型实例 68 实例056 从右至左输入数据 68 实例057 为TEdit控件添加列表选择框 69 实例...
  • 实例010 怎样定制自己的工具栏 实例011 在VC项目中使用自定义资源 实例012 向Visual C++开发环境中添加插件 实例013 添加消息处理函数 实例014 设置开发环境文本颜色 实例015 设置批量注释 实例016 如何对齐...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

如何制作自己的图片api