精华内容
下载资源
问答
  • 怎样用ecognition软件实现同一幅图片上的多尺度分割 今年由于用到了ecognition软件的对同一图片上分不同分割参数进行分割,在网络上查找了许多资料都没有具体的步骤,所以在这里补充一下步骤给大家。 主要步骤为...

    怎样用ecognition软件实现同一幅图片上的多尺度分割

    今年由于用到了ecognition软件的对同一图片上分不同分割参数进行分割,在网络上查找了许多资料都没有具体的步骤,所以在这里补充一下步骤给大家。

    主要步骤为以下几个要点:

    1.新建工程,导入需要处理的图片,按大尺度来将图片分为需要的几个大区域

    2.对几个大区域分别赋类别,然后导出其shp(矢量文件)

    3.再新建一个工程,再次导入需要处理的图片,导入上一步的所有矢量文件

    4.在ecognition中用导入的矢量文件切割区域,并赋值为新的区域

    5.在规则中添加多尺度分割,设置好每个区域的参数和限制条件

    6.分割完成

    详细步骤如下:

    1.新建工程,导入需要处理的图片,按大尺度来将图片分为需要的几个大区域,这里的大区域分割参数读者根据自己的需求来调整,我这里目的是将其分为nature、resident、industry三个部分。

    设置大尺度参数

     

    最终分割结果如下图

    分割结果

     

    2.然后创建需要切割成的几个大类,我这里是三个大类

    创建类

     

    3.运用对图像分割结果手动赋值类别(注意,一定要确保图片所有结果都有其对应的类别)

     

    手动赋值类别的结果

     

    4.导出结果的矢量文件,做好命名

    导出矢量文件

     

    5.新建一个工程,重新添加图片,同时添加上一步中我们导出的矢量文件。

    导入矢量文件

     

    6.运用矢量文件进行切割,切割出刚才同样的结果

    再次切割

     

    7.创建导入各个矢量的ID值,这一步非常重要:

    创建矢量ID
    创建每个矢量的ID

     

    创建结果

     

    8.然后添加命令update region,限制条件为ID

     

     

    9.查询是否设置区域成功,在Process中的Manage Variables

    10.最后对不同区域设置各自的尺度,进行多尺度分割,这里一定要注意Level Usage设置和不使用矢量文件、设置正确Region限制条件。

    后面实验了下,一定要将Threshold condition条件也设置一下。如下图所示:

    仅仅对industry进行分割处理结果

     

    从中可以看见只有industry区域进行了多尺度分割处理,对相邻的区域没有进行分割,可证明此法能够正确对不同不规则大区域进行不同参数的分割处理。

    以上方法就介绍到这(操作是真的复杂),如果有更好地方法,希望介绍给我。

    具体实操视频为:

    ecognition目标区域分割

     

    展开全文
  • 本人新手,请问怎样将一张图片进行分割,然后做成按钮?也就是说上面的那张遥控器图片怎样将它的按键分割出来做成按钮?要有鼠标点下去后有凹下去或变颜色的效果。用什么控件做呢?或者说一下思路呀,谢谢!
  • ![图片说明](https://img-ask.csdn.net/upload/202009/06/1599402035_110825.jpg) ...还找到了百度的图像分割模型https://ai.baidu.com/easydl/ 但我测试下来效果不行,可能有大量训练集后会有效果。
  • 想分别画图怎样实现?是必须对应两个视吗?若是,怎么实现?非常感谢!敬请帮帮 我!!! 怎么使一个框架的两个分割窗口分别对应两个视相关解决方法:1、 怎么使一个框架的两个分割窗口分别对应两个视推荐解答: BOOL ...

    在一个单文档的主窗口中分割成了两个窗口,可是对应的是一个CView类,要
    想分别画图怎样实现?是必须对应两个视吗?若是,怎么实现?非常感谢!敬请帮帮
    我!!!
    怎么使一个框架的两个分割窗口分别对应两个视相关解决方法:1、
    怎么使一个框架的两个分割窗口分别对应两个视推荐解答:
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {
    // return CFrameWnd::OnCreateClient(lpcs, pContext);
     m_SplitterWnd.CreateStatic(this,2,1) ;
     m_SplitterWnd.CreateView(0,0,RUNTIME_CLASS(CMyView1),CSize(100,100), pContext) ;
        m_SplitterWnd.CreateView(1,0,RUNTIME_CLASS(CMyView2),CSize(0,0), pContext) ;
        return TRUE ;
    }
    以上代码将主窗口分割成两个视,你可在CMyView1和CMyView2的OnDraw中分别画图。2、
    可在向导中建立两个视类(CTree和另一个),不知你要建哪两个呢3、
        通常,我们可以通过AppWizard生成一个标准静态拆分窗口的框架程序,它把
    窗口拆分成四个视,这四个视其实是同一个视类的同一个实例。在许多的实用程
    序里,拆分窗口已被广泛使用,而它们往往是使用不同的视类来表达一件事物的
    多种属性,如Visual C++、Windows资源管理器等。很显然,这些类并非是相同视
    类,但这些类之间却有着紧密的联系,如何在静态拆分的窗口中使用多个不同的
    视类、如何在这些视类之间进行通讯呢?
        首先,通过AppWizard生成一个标准的SDI程序框架并命名为Spform,然后通
    过ClassWizard加入两个新视类:CTest1View、CTest2View。
    在CMainFrame中加入成员:
    CSplitterWnd m_wndSplitter1;
    CSplitterWnd m_wndSplitter2;
    把窗口拆分成三格,形如" and -":
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    m_wndSplitter1.CreateStatic(this,1,2);
    m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CSpformView),
    CSize(300,0),pContext);
    m_wndSplitter2.CreateStatic(&m_wndSplitter1,2,1,
    WS_CHILD and WS_VISIBLE,m_wndSplitter1.IdFromRowCol(0,1));
    m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CTest1View),
    CSize(0,150),pContext);
    m_wndSplitter2.CreateView(1,-0,RUNTIME_CLASS(CTest2View),
    CSize(0,0),pContext);
    return TRUE;
    }
        这样一来,三个窗格的视类分别是CSpformView、CTest1View、Ctest2View,不过必须在CMainFrame类的实现文件头包含一下文档类及这三个视类的类定义(.h)文件。要在窗格中显示东西,在相应视类的OnDraw函数中直接进行输出即可。
        而为了视类之间的通讯,我们让这些视类共用一个文档类,上面已经埋伏好了,CSpformView类在创建文档模板时已和文档类CSpformDoc捆绑在一起了,这样,CSpformView可读写CSpformDoc的数据,直接通过OnDraw显示文档的内容。而CTest1View和CTest2View类只是普通的视类,而直到产生窗口拆分时它们才与文档类CSpformDoc捆绑,它们在OnDraw函数中获得的只是普通文档类指针:
    CDocument* pDoc = GetDocument();
    我们把这句改为:
    CSpformDoc* pDoc = (CSpformDoc*)GetDocument();
    (必须包含一下文档类的类定义(.h)文件)
        这样,三个视类都可以读写同一个CSpformDoc类实例的成员数据,各个窗格的通讯问题变成了文档/视的通讯问题。
        可以在文档类中加入成员变量,在各个视中就可以用不同的形式显示出来,当文档的数据发生变化,可以用UpdateAllViews函数来更新所有视类的显示。
        还可以使视类派生自CFormView类,这样可加入各种控件来显示或修改文档的数据,使分隔窗口应用范围更广,随心所欲地做出各种实用程序。当需要更新各个视时,只要在视类中加入:
    UpdateData(TRUE);//保存到视类的成员变量,因为CFormView具有对话框属性
    CSpformDoc* pDoc=(CSpformDoc*)GetDocument();
    pDoc->文档类成员变量1=视类成员变量1;//把视类数据保存到文档类
    pDoc->文档类成员变量2=视类成员变量2;
    ......
    pDoc->UpdateAllViews(this);//更新所有视类
    各个视类的更新函数可以这样:
    void CTest1View::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint

    {
    CSpformDoc* pDoc=(CSpformDoc*)GetDocument();
    视类成员变量1=pDoc->文档类成员变量1;
    视类成员变量2=pDoc->文档类成员变量2;
    ......
    UpdateData(FALSE);
    }
        这样,可以方便地使用各种控件,还利用了文档/视类的机制,使各个视方便地进行通讯,实现了各个窗格之间的通讯。

    来源:电脑网络爱好者:http://www.pcnetfan.com/viewnews-12991.html

    展开全文
  • 我这里用的汽车图片,我们目标是将汽车抠出来,然后替换背景,第二章的黑白图,是图片分割结果的mask图片 思路 抠图思路 将图片读取后,mask图片需要处理为二进制图片 使用OpenCV的bitwise_and,对原图和mask二...

    我习惯用tensorflow,所以这里读取图片采用的tensorflow,但是,使用OpenCV同样可以,处理图片使用的OpenCV

    目标

    我这里用的汽车图片,我们目标是将汽车抠出来,然后替换背景,第二章的黑白图,是图片分割结果的mask图片(图片需要下载和代码放同一个位置,注意修改图片名称:tt.jpg 和 tt_mask.gif)

    原图
    tt.jpgmask
    tt_mask.gif

    思路

    抠图思路

    1. 将图片读取后,mask图片需要处理为二进制图片
    2. 使用OpenCV的bitwise_and,对原图和mask二进制进行抠图

    替换背景思路

    1. 新建一个背景图
    2. mask二进制文件需要反转一下(图片中的0变为1,1变为0)
    3. 利用反转后的mask文件,扣掉背景图中汽车所在的位置
    4. 将3步得到的背景图 和 前面扣除来的汽车进行相加就行了
    5. 为了看起来更自然,可以使用高斯模糊进行处理一下

    代码

    抠图

    需要的包
    import cv2
    import tensorflow as tf
    import numpy as np
    import matplotlib.pyplot as plt
    
    1. 读取图片
    • 我这里用的tensorf读取的图片,你也可以使用OpenCV读取图片,整体思路是一样
    # 原图
    
    path = "tt.jpg"
    img = tf.io.read_file(path)
    img = tf.image.decode_jpeg(img, channels=3)
    
    # mask
    path_mask = "tt_mask.gif"
    img_mask = tf.io.read_file(path_mask)
    img_mask = tf.image.decode_jpeg(img_mask, channels=3)
    
    2. 由于是tensorflow读取的图片,为方便OpenCV处理,需要转换为numpy格式
    img = img.numpy()
    img_mask = img_mask.numpy()
    
    3. mask图片为了方便后面计算,我直接转换为二进制文件
    img_mask = cv2.threshold(img_mask, 1, 255, cv2.THRESH_BINARY)[1]
    
    4.(关键代码)下面我就开始利用mask抠图了
    • sub_img:就是抠图的效果
    sub_img = cv2.bitwise_and(img,img_mask)
    plt.imshow(sub_img)
    

    效果如下:在这里插入图片描述

    替换背景

    制作背景图(纯绿色)
    background = np.zeros_like(img)
    background[:,:,:]  = (12, 198, 150)
    plt.imshow(background)
    

    在这里插入图片描述

    对背景图进行抠图
    background = cv2.bitwise_and(background, cv2.bitwise_not(img_mask))
    plt.imshow(background)
    

    在这里插入图片描述

    用扣完的背景图,和扣完的汽车图进行相加
    new_img = cv2.add(background, sub_img)
    plt.imshow(new_img)
    

    在这里插入图片描述

    高斯模糊一下,看起来更自然
    new_img_blur = cv2.GaussianBlur(new_img, (9,9), 5)
    plt.imshow(new_img_blur)
    

    在这里插入图片描述

    总结

    好吧,其实很简单,但是这个抠图问题,影响了我半天,主要是我OpenCV不熟练,再次记录一下,也方便其他菜鸟,有任何疑问,都可留言,我看见后第一时间回复大家

    展开全文
  • 用Python分割九宫格图片发朋友圈

    千次阅读 2018-09-26 12:56:11
    近日,朋友圈流行起了发九宫格的图片,就是将一张图片切割成九张图,然后在朋友圈发九张,但看起来就像一张一样,这不,我楼下的小A就狂发了一堆。  看起来好像挺好玩的,于是就问了小A他是怎样做的,他跟我说要...

           近日,朋友圈流行起了发九宫格的图片,就是将一张图片切割成九张图,然后在朋友圈发九张,但看起来就像一张一样,这不,我楼下的小A就狂发了一堆。

          看起来好像挺好玩的,于是就问了小A他是怎样做的,他跟我说要下载一个软件,然后就这样那样操作就可以了。

           作为一个有理想(hen)有抱负(lan)的程序员,怎么可能会为了这么一个小功能就去下载一个软件,不用的时候还得把他给删了,于是乎就想到了要不自己写个代码,然后把这个功能放在微信小号上,只要给小号发张图片,就能将处理好后的图片返回给你。想想还是挺美好,那么,说干就干。(效果如下)

            这样,集齐九张图片就可以去发朋友圈了,非开发人员看到这里就可以加下小A的微信号,去试试这个技能了,公众号里回复 九宫图 就能获取小A的微信名片加好友了。

            至于程序员们,我们可以详细来聊聊这个功能开发的思路跟具体代码。

    本次用到的环境:Win10 or Ubuntu 

    语言:Pyhton3.6.4

    第三方库:Pillow,itchat

    九宫格分割代码来源:https://blog.csdn.net/mico_cmm/article/details/81747974

    itchat的使用可以参考之前的文章

    Python微信聊天机器人

    我们先来看看九宫格分割的思路:

    1 首先,你要有一张要发朋友圈的原图,长宽就看你自己安排了,不过尽量是正方形的效果会好点。     

     2 根据图片中最长的那一边的长度a来生成一个边长为a的白底正方形,然后将原图居中放置到边长为a的白底正方形中央。如下图所示:我选择了一张长为800,宽为500的原图,我们要做的就是生成一个边长为800的白底正方形,然后将原图放置到正方形的正中央。

    3 就是将图片九等分,切割成九张图

    4 利用itchat接收用户发送过来的图片,对图片处理后返回用户九张处理后的图片

     

    生成白底正方形:

    from PIL import Image
    # 先将原图填充为正方形
    def fill_image(image):
        # 获取图片的长宽
        width, height = image.size
        # 选取长和宽中较大值作为新图片的边长
        new_image_length = width if width > height else height
        # # 生成新图片[白底]
        new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')  # 注意这个函数!
        # # 将之前的图粘贴在新图上,居中
        if width > height  :  # 原图宽大于高,则填充图片的竖直维度  #(x,y)二元组表示粘贴上图相对下图的起始位置,是个坐标点。
            new_image.paste(image, (0, int((new_image_length - height) / 2)))
        else:
            new_image.paste(image, (int((new_image_length - width) / 2) ,0))
        # 返回图片
        return new_image    
    

    分割图片:

    # 分割图片
    def cut_image(image):
        width, height = image.size
        item_width = int(width / 3)  # 因为朋友圈一行放3张图。
        item_height = int(height / 3)
        box_list = []
        # (left, upper, right, lower)
        for i in range(0 ,3):
            for j in range(0 ,3):
             # print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))
                box = ( j *item_width , i *item_height ,( j +1 ) *item_width ,( i +1 ) *item_height)
                box_list.append(box)
        image_list = [image.crop(box) for box in box_list]
        return image_list
    

    保存图片:

    # 保存图片
    def save_images(image_list):
        index = 1
        for image in image_list:
            # 在windows下地址需要双\进行转义,linux下就直接文件夹地址:/home/image/
            image.save('C:\\Users\Administrator\\Desktop\\九宫格\\'+str(index) + '.jpg')
            index += 1
        # 点击按钮,实现图片分割
    

    图片处理的主函数:

    def cTofClicked(image_name):
         # 打开一张新图片
        image =Image.open(image_name)
         # 填充图片
        image = fill_image(image)
        # 切割图片
        image_list = cut_image(image)
        # 保存图片
        save_images(image_list)
    

    通过Itchat将功能部署在微信号上:

    import itchat
    from itchat.content import *
    import time
    
    # 注册信息类,如果有人发图片给你,则进入这个函数进行操作
    @itchat.msg_register([PICTURE])
    def download_files(msg):
        # 将接收到的图片保存到py所在文件夹内
        msg['Text'](msg['FileName'])
        # 将图片传入到函数中,进行处理
        cTofClicked(msg['FileName'])
        # 将处理好的文件一张张按顺序发送给用户
        for i in range(1,10):
            time.sleep(1)
            ls="C:\\Users\Administrator\\Desktop\\九宫格\\"+str(i)+".jpg"
            itchat.send('@img@%s' % ls,toUserName=msg['FromUserName'])
    
    # 如果是在linux环境下,需要添加参数enableCmdQR,将二维码通过命令行的形式展示出来
    # itchat.auto_login(hotReload=True,enableCmdQR=2)
    itchat.auto_login(hotReload=True)
    itchat.run()
    

           最后,运行上面这些代码,扫码登陆就可以使用了,如果你想24小时都能用的话,最好是有自己的服务器,然后后台一直挂着就可以了。

    欢迎大家关注我的微信公众号Python小黑屋

    python学习资源/有趣的python文章/python学习笔记

    展开全文
  • 1. require.ensure ...那对于require.ensure情况又会是怎样的情况呢?... 我们都知道webpack通过require.ensure来对我们的代码进行分割,将按需加载的代码单独放在的块文件chunk中,然后在合适的时候异步加载...
  • 首先使用360浏览器将网页保存为图片,如下图所示: 然后用PS打开图片,点开始--打开,找到文件所在的位置,将其打开。 其次找到切片工具,默认的切片工具和裁剪工具是重叠在一起的。鼠标移到裁剪工具上点右键就...
  • 一、需求来源 因为在编写爬虫程序时,经常会遇到,电话号码使用图片格式显示。程序无法直接拿到其中的电话号码。 二、解决思路 1、拿到该网站从0-9的数字的图片,并将每个...3、将读取出来的图片分割开来。 4、...
  • PDF文件的分割方法

    2015-03-20 09:35:30
    有时长时间在网上阅读,下载了一些电子书籍,比如PDF文档,刚开始不... PDF拆分软件的优势在于:支持批量文字、图片文件的分割或合并、通过“上移”、“下移”改变文档的位置、支持加密的文件拆分合并。  PDF分割
  • 比如我们有一只小猫的图片怎样才能够通过计算机自己对图像进行识别达到将小猫和图片当中的背景互相分割开来的效果呢?如下图所示: 而在2015年出来的FCN,全卷积神经网络完美地解决了这个问题,将曾经mean IU...
  • 对一张jpg图片进行了分割,用其他软件提取了不同目标区左上,右上,左下,右下四个点的坐标,对应生成了不同的TXT文件,现在需要将原始的jpg图片作为底图,将每一个TXT显示在底图上,并生成一个覆盖目标区的矩形。...
  • 这里我大概介绍一下怎样将一副包含多个字符的图片进行去噪处理进而分割出单个字符,关于opencv中怎样使用ANN详见Opencv中ANN神经网络使用示例。原始图: 效果图: 下面介绍一下处理步骤,1.载入
  • 因为提交过来其实是data URI地址,而且该地址分为两部分,中间用逗号分割,其中第一部分为“data:”+导出图像的MIME类型+“;base64”,第二部分为一个经过base64编码的字符串。我想通过Base64解码后将数据保存成图片,...
  • 下载了一个伯克利分割数据集的下载包,里面有.mat文件,将其导入到matlab工作区后,我想将里面的图片分割成 35*35的图像块,并且想把包含边缘的作为正样本,不包含边缘的作为负样本,该怎样做呢
  • 比如我们有一只小猫的图片怎样才能够通过计算机自己对图像进行识别达到将小猫和图片当中的背景互相分割开来的效果呢?如下图所示: 而在2015年出来的FCN,全卷积神经网络完美地解决了这个问题,将曾经mean IU...
  • 我有两个表 表A,表B 表A中有字段CategoryID,也是表B的主键,但是表A中CategoryID字段里有多个值,用“,”隔开了,想请教一下各位大神 怎样用表A 中的字段作为连接表B的条件![图片说明]...
  • 我用Java Swing写了一个小程序,这是片段:![图片说明](https://img-ask.csdn.net/upload/201603/14/1457953421_953017.jpg) ...我想向大家请教:要怎样修改,才可以输出有空格的新字符串呢?谢谢大家。
  • 深度学习神经网络初步与调参技巧深度卷积神经网络原理与实践图像搜索技术大规模车辆图片搜索/重识别第三阶段 重点攻坚目标检测及其在无人驾驶领域的作用深度学习在图像语义分割中的应用第四阶段 技术前沿RNN及其应用...
  • PDF转换成Word怎样转换?很多的小伙伴还不知道怎样将PDF文件转换为Word文档,今天小编就来教给大家一个简单的方法,还...2.PDF操作功能:可以完成PDF合并、分割、加密、解除密码、图片提取、添加水印等等。 3.文字语...
  • 模仿windows图片浏览器(续)

    千次阅读 2008-05-18 14:00:00
     在写的时候遇到一些问题: 一、怎样合适显示图片?最初想到的是黄金分割,因为黄金分割被认为是最美的分割,所以想分割出来也不至于太难看吧!黄金分割率大约是0.二、放大缩小略图片时失真太多? 谁有
  • 基础一:图片的卷积和池化操作计算机视觉(分类/检测/分割)的基本操作图片的格式卷积和池化 计算机视觉(分类/检测/分割)的基本操作 在计算机视觉的深度学习中,我们最常用的就是CNN网络,翻译过来就是卷积神经网络,...
  • 准备好一张图片(一般的jpg格式的就行)还有一个图标(必须是ico格式),放在U盘根目录下。 卷标大家都会改的,就是在u盘盘符上点右键,选择“重名名”,然后输入你的名字之类的字符即可。 先改一下...
  • 你的解决方法是计算牌应该如何被分割以及每摞牌的价值。 输入输出示例如下: ![图片说明](https://img-ask.csdn.net/upload/202006/27/1593264585_763892.png) 1.通过检查所有可能的桩以蛮力解决此问题。 对这种...
  • 提问的智慧 How To Ask Questions The Smart Way ... Raymond, Rick Moen 本指南英文版版权为 Eric S.... ...Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu 本中文指南是基于原文 3.10 版...
  • 05-FCN的学习笔记

    2020-07-26 18:05:36
    05-FCN的学习笔记一、按照自己的观点,总结对于语义分割的理解二、怎样理解论文中的Figure 2 ?三、用文字描述论文中的Figure 3四、将论文Results中提到的前三个指标,用自己的理解描绘出来 一、按照自己的观点,...
  • mybatis中一对多添加

    千次阅读 2015-10-23 16:24:18
    如果一个表可以上传一个图片,也可以上传多个图片,也...前台将图片名字通过逗号分割传到后台,后台用一个集合来接收。 例: 前台:name="imageName" imangeName = "风景图片1,风景图片2,......",或者imangeName =
  • 已经经过霍夫变换得到线段但是不知道怎样判断出矩形,并将图片中的矩形分割出来。求教。

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

怎样分割图片