精华内容
下载资源
问答
  • 感兴趣区域提取

    2014-05-21 17:50:33
    感兴趣区域提取算法,针对图像的后期处理有很好的作用,减少计算量。
  • 手指静脉图像感兴趣区域提取方法研究
  • 基于HSVColor空间的感兴趣区域提取
  • 信息丢失少的手指静脉图像感兴趣区域提取
  • 基于视觉显着性的遥感图像感兴趣区域提取
  • 针对静脉图像采样过程中存在的旋转、平移等非线性因素造成手指静脉图像定位困难的问题,考虑图像非接触式采集特点,提出一种采用旋转校正的手指静脉图像感兴趣区域提取方法.首先对读人的手指静脉图像采用Kapur熵...
  • 摘 要 : 提出一种基于视觉注意机制的医学图像感兴趣区域提取方法 。 受生物学启发 ,该方法模仿人类自下而 上的视觉选择性注意过程 ,通过计算图像中每个像素的全局对比度 , 构造相应的显著图 , 并根据显著图 , 检测出...
  • 针对胸部CT扫描图像库,提出了一种基于感兴趣区域提取的图像检索方法。 首先为了提取感兴趣区域,提出一种基于灰度层共现矩阵的区域增长算法,分割出病灶区域,再通过阈值算法进行边界的磨合,然后针对感兴趣区域提取形状...
  • 基于小波变换的JPEG2000感兴趣区域提取,洪宁,王海婴,本研究提出了一种针基于小波变换、图像自适应自动提取感兴趣区域的方法。提取的感兴趣区域为图像的细节信息,无需人工参与、自动
  • 针对静脉图像采样过程中存在的旋转、平移等非线性因素造成手指静脉图像定位困难的问题,考虑图像非接触式采集特点,提出一种采用旋转校正的手指静脉图像感兴趣区域提取方法.首先对读入的手指静脉图像采用 Kapur熵...
  • 基于视觉注意的医学图像感兴趣区域提取
  • opencv 感兴趣区域提取 (ROI) 1)使用像素坐标来提取ROI,前提是知道感兴趣区域的具体坐标范围 def img_cut(): os.chdir(input) img_row = 1 for image_name in os.listdir(os.getcwd()): print(image_name)...

    opencv 感兴趣区域提取 (ROI)

    • 1)使用像素坐标来提取ROI,前提是知道感兴趣区域的具体坐标范围
    def img_cut():
         os.chdir(input)
        img_row = 1
         for image_name in os.listdir(os.getcwd()):
            print(image_name)
            img_row=img_row+1
            im = cv2.imread(os.path.join(input, image_name))
            if (im is None):
                print('读取照片失败')
                return -1
            im=im[600:1057,0:600]   # 裁剪坐标为[y0:y1, x0:x1]
            cv2.waitKey(0) #等待输入再关闭窗口
            cv2.imwrite((os.path.join(output, image_name)),im)
    

    在这里插入图片描述

    在这里插入图片描述

    • 2)使用鼠标选择想要的感兴趣区域(引用)
    import cv2
    global img
    global point1, point2
    def on_mouse(event, x, y, flags, param):
        global img, point1, point2
        img2 = img.copy()
        if event == cv2.EVENT_LBUTTONDOWN:  # 左键点击
            point1 = (x, y)
            cv2.circle(img2, point1, 10, (0, 255, 0), 5)
            cv2.imshow('src', img2)
        elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON):  # 按住左键拖曳
            cv2.rectangle(img2, point1, (x, y), (255, 0, 0), 5)
            cv2.imshow('src', img2)
        elif event == cv2.EVENT_LBUTTONUP:  # 左键释放
            point2 = (x, y)
            cv2.rectangle(img2, point1, point2, (0, 0, 255), 5)
            cv2.imshow('src', img2)
            min_x = min(point1[0], point2[0])
            min_y = min(point1[1], point2[1])
            width = abs(point1[0] - point2[0])
            height = abs(point1[1] - point2[1])
            cut_img = img[min_y:min_y + height, min_x:min_x + width]
            cv2.imshow('ROI_rectangle', cut_img)
            cv2.destroyWindow('ROI_rectangle')
    def main():
        global img
        img = cv2.imread('g0001.jpg')
        cv2.namedWindow('src')
        cv2.setMouseCallback('src', on_mouse)
        cv2.imshow('src', img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
    if __name__ == '__main__':
        main()```
     
    
    展开全文
  • 基于频谱显着性分析和相干增强扩散模型的遥感图像感兴趣区域提取
  • 提出一种基于视觉注意机制的医学图像感兴趣区域提取方法。受生物学启发,该方法模仿人类自下而上的视觉选择性注意过程,通过计算图像中每个像素的全局对比度,构造相应的显著图,并根据显著图,检测出图像中的显著...
  • 用于感兴趣区域提取的GBVS算法

    热门讨论 2011-05-15 13:37:45
    GBVS算法,用于人眼感兴趣区域提取,与Itti模型不同的是,在生成显著图的过程中采用的是马尔可夫链,用其平稳分布来计算感兴趣区域,是一种纯数学的计算方法。效果显示,GBVS要比Itti好。
  • 基于视点相关性的三维视频中间视点感兴趣区域提取算法,周晓亮,蒋刚毅,给出了一种新颖的感兴趣区域提取结构-类HBP结构,并基于这种结构利用相邻视点的空域相关性和当前视点的深度信息提出了一种三维视��
  • 基于车辆运动信息的感兴趣区域提取算法研究 感兴趣区域的图像处理
  • 根据视觉注意机制的经典模型Itti模型来提取图像的低层特征,利用局部迭代的特征合并策略并在此基础上综合自动阈值分割和种子点的区域生长方法得到感兴趣区域提取方法。实验结果表明该方法符合生物的视觉注意机制,...
  • 毕业论文资料 静态图像感兴趣区域提取关键技术研究
  • 研究了一种手指静脉感兴趣区域(ROI)的定位与提取方法,以解决手指在采集静脉图像时的随机运动对手指静脉识别结果的影响。通过计算手指轮廓线的主方向和末节关节腔位置对手指摆放位置的随机变化进行校正,并初步定位...
  • 眼底图自动化感兴趣区域提取(ROI) 1)背景 import cv2 from cv2 import namedWindow import os global img global point1, point2 global cut_img_name data_path='./' file_name = xlrd.open_workbook(data_label...


    前言

    机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。
    在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。 在图像处理领域,感兴趣区域(ROI) 是从图像中选择的一个图像区域,这个区域是你的图像分析所关注的重点。圈定该区域以便进行进一步处理。使用ROI圈定你想读的目标,可以减少处理时间,增加精度。


    一、opencv是什么?

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法

    二、使用步骤

    1.引入库

    代码如下(示例):

    import numpy as np
    import os
    import cv2
    

    2.读入数据

    代码如下(示例):

    project_dir=os.path.dirname(os.path.abspath(__file__))
    input=os.path.join(project_dir,'Input')
    #输出目录
    output = os.path.join(project_dir,'Output')
    if not os.path.exists(output):
    	os.mkdir(output)
    

    3.核心代码

    代码如下(示例):

    def img_cut():
        # 切换目录
        os.chdir(input)
        img_row = 1
        # 遍历目录下所有的文件
        for image_name in os.listdir(os.getcwd()):
            print(image_name)
            # 读取图片并将其转化为灰度图片
            image = cv2.imread(image_name)
            orig = image.copy()
            gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
            # 利用cv2.minMaxLoc寻找到图像中最亮和最暗的点
            (minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
            # 在图像中绘制结果
            cv2.circle(image, maxLoc, 5, (255, 0, 0), 2)
            # 应用高斯模糊进行预处理(由找点变成找区域)
            gray = cv2.GaussianBlur(gray, (59,59), 0)
            # 利用cv2.minMaxLoc寻找到图像中最亮和最暗的区域
            (minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
            image1 = orig.copy()
            image2=orig.copy()
            print(maxLoc)
            cv2.circle(image1, maxLoc, 300, (255, 0, 0), 2)
            # 显示结果
            cv2.rectangle(image2,(maxLoc[0]-320,maxLoc[1]+320),(maxLoc[0]+320,maxLoc[1]-320),(0, 0, 255))
            # image3=image2[(maxLoc[0]-200):(maxLoc[0]+1000), (maxLoc[1]-200):(maxLoc[1]+1000)]
            x_min=x_max=y_min=y_max=0
            if ((maxLoc[0]-320))<0:#为了防止左边的截图越界,设置一个判断语句
                x_min=0
            else:
                x_min=(maxLoc[0]-320)
            x_max=(int)(maxLoc[0]+320)
            y_max=(int)(maxLoc[1]+320)
            y_min=(int)(maxLoc[1]-320)
            print(x_min,x_max,y_min,y_max)
            image3=image2[y_min:y_max,x_min:x_max]
            # image3=image2[526:1166,0:453]
            result = np.hstack([orig, image, image1,image2])
            cv2.imwrite(os.path.join(output,image_name), image3)
            cv2.namedWindow(image_name, 0)
            cv2.resizeWindow(image_name, 600, 500)
            cv2.imshow(image_name, image3)
            cv2.waitKey(10)
    

    总结

    本文是使用opencv找出青光眼眼底图中最亮的点,然后将图片向最亮的点想外扩张两倍视杯视盘的半径,如果是人脸识别将人脸向外扩散两倍也可,为了能批量处理图片,这里采用了一个for循环来实现。

    展开全文
  • 感兴趣区域提取(ROI)matlab实现

    热门讨论 2012-05-30 20:15:22
    图片的感兴趣区域提取matlab实现 直接运行go函数即可运行 可视化操作
  • 1. ROI-感兴趣区域提取 ROI(region of interest),感兴趣区域,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,经常用来连接图像。 代码如下: def roi_test(src): ...

    1. ROI-感兴趣区域提取

    ROI(region of interest),感兴趣区域,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,经常用来连接图像。

    代码如下:

    def roi_test(src):
        face = src[100:510, 200:600]  # 高度,宽度.
        gray = cv.cvtColor(face, cv.COLOR_BGR2GRAY)  # face彩色图片变成灰度图片
        cv.imshow("gray", gray)
        back_face = cv.cvtColor(gray, cv.COLOR_GRAY2BGR)  # 将 R = G = B = gray,所以呈现出来的是灰色
        cv.imshow("back_face", back_face)    # back_face必须是三通道的
        src[100:510, 200:600] = back_face
        cv.imshow("face", src)

    注意:

    1. 当RGB中三个通道的值相同时,图片展现出来是灰色。

    2. src[100 : 510, 200 : 600]指的是高和宽(opencv中宽和高总是分不清楚)。

    2. 泛洪填充

    将指定颜色从指定位置开始填充一个连通区域,此时的连通性由像素值的接近程度来衡量。

    2.1 cv2.floodFill()

    漫水填充法(cv2.floodFill)是一种用特定的颜色填充联通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的方法。漫水填充经常被用来标记或分离图像的一部分以便对其进行进一步处理或分析,也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或只处理掩码指定的像素点,操作的结果总是某个连续的区域。漫水填充算法是用来标记一片区域的:设置一个种子点,然后种子点附近的相似点都被填充同一种颜色。该算法应用性很广,比如目标识别,photoshop 的魔术棒功能等等,是填充类算法中应用最为广泛的一个算法。

    cv2.floodFill(InputOutputArray image, Point seedPoint, Scalar newVal, Rect* rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4 ) 

    参数说明如下:

    1.原图像, 2.掩模, 3.起始点,4.填充的颜色, 5.填充颜色的低值, 6.填充颜色的高值 ,7.填充的方法

    讲解如下:

    参数2:掩码参数 mask 必须是一个单通道,8位,像素宽度高度均比原图像大两个像素。mask 图像的像素 (x+1, y+1) 与原图像 (x, y) 相对应。为 0 的位表示不进行处理。同时,掩码区也会返回填充结果。

    参数5.填充颜色的低值就是:参数3 位置的各个通道像素值减去 参数5

    参数6.填充颜色的高值就是:参数3位置 的各个通道像素值加上 参数6

    即是这两个数值之间的色素替换为参数4的颜色。

    参数7:

    • FLOODFILL_FIXED_RANGE - 指定颜色填充。
    • FLOODFILL_MASK_ONLY - 只在mask对应的位置进行填充,且mask中为0的区域填充,不为0的区域不填充,否则没效果。

    代码如下:

    # roi 即兴趣区域,对图像提取想要的部分
    
    import cv2 as cv
    import numpy as np
    from matplotlib import pyplot as plt
    
    
    def roi_test(src):
        face = src[100:510, 200:600]  # 高度,宽度.
        gray = cv.cvtColor(face, cv.COLOR_BGR2GRAY)  # face彩色图片变成灰度图片
        cv.imshow("gray", gray)
        back_face = cv.cvtColor(gray, cv.COLOR_GRAY2BGR)  # 将 R = G = B = gray,所以呈现出来的是灰色
        cv.imshow("back_face", back_face)
        src[100:510, 200:600] = back_face                 # back_face必须是三通道的
        cv.imshow("face", src)
    
    def fill_color_demo(image):
        copyImg = image.copy()
        h, w = image.shape[:2]
        mask = np.zeros([h+2, w+2], np.uint8)      # mask必须是一个单通道
    
        # 参数:原图,mask图,起始点,起始点值减去该值作为最低值,起始点值加上该值作为最高值,彩色图模式
        cv.floodFill(copyImg, mask, (30, 30), (0, 255, 255), (100,100,100), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE)
        cv.imshow("fill_color_demo", copyImg)
    
    def fill_binary():
        image = np.zeros([400, 400, 3], np.uint8)
        image[100:300, 100:300, :] = 255         # 将这个范围的所有通道赋值
        cv.imshow("fill_binary", image)
    
        mask = np.ones([402, 402, 1], np.uint8)
        mask[101:301, 101:301] = 0
    
        cv.floodFill(image, mask, (200, 200), (100, 2, 255), cv.FLOODFILL_MASK_ONLY)
        cv.imshow("filled binary", image)
    
    
    if __name__ == '__main__':
        src = cv.imread("../images/CrystalLiu1.jpg")  # 读入图片放进src中
        # cv.namedWindow("Crystal Liu")  # 创建窗口
        # cv.imshow("Crystal Liu", src)  # 将src图片放入该创建的窗口中
        # roi_test(src)
        # fill_color_demo(src)
        fill_binary()
        # img = cv.imread("../images/opencv_logo.png")
        # make_border(img)
        cv.waitKey(0) # 等有键输入或者1000ms后自动将窗口消除,0表示只用键输入结束窗口
        cv.destroyAllWindows()  # 关闭所有窗口
    

     

    展开全文
  • 基于matlab得图像感兴趣区域提取

    万次阅读 2019-07-23 22:46:58
    对于图像感兴趣区域(ROI)的提取,一般从来两个方面着手解决:一是利用图像分割技术提取ROI;二是从人眼得视觉特征出发,通过模拟人眼得视觉特点,寻找特定得视觉敏感区域,并将这些视觉敏感区域排序作为ROI。 本文...

    对于图像感兴趣区域(ROI)的提取,一般从来两个方面着手解决:一是利用图像分割技术提取ROI;二是从人眼得视觉特征出发,通过模拟人眼得视觉特点,寻找特定得视觉敏感区域,并将这些视觉敏感区域排序作为ROI。
    本文介绍差影法(对图像进行代数运算得一种不同的叫法)、交互式提取法、自动图像分割提取法。
    差影法:本文主要用到图像减法,在进行图像处理时,对混合背景和前景的图像,人们往往对前景比较感兴趣,假设背景图像为b(x,y),前景背景混合图像为f(x,y),则去除了背景得图像为:a(x,y)=f(x,y)-b(x,y)
    通过差影法提取图像感兴趣区域的实现过程如下:
    (1)使用strel函数创建指定形状对应得结构元素,形状参数选择disk,根据背景复杂程度选择合适得圆盘半径。 background=imopen(I,strel(‘disk’,15));
    (2)对原始图像和由strel函数创建得结构元素进行开运算,得到背景图像。
    (3)使用imsubtract函数对原始图像和背景图像做减法运算,得到消除背景后得感兴趣区域。 I2=imsubtract(I,background);
    注:实验图片得背景复杂度不同,圆盘半径参数选取不同。
    优点:提取ROI对于背景简单得图像处理效果较好,处理速度快。
    缺点:对于复杂背景得图像处理效果不太好,背景干扰不易去除,且不停的实验选取适合得圆盘半径,操作比较麻烦,不太适用于大量图片得感兴趣区域的提取。
    发现使用这个方法得一个很好得例子:https://www.jb51.net/softjc/505297.html

    交互式提取法:以用户为中心,实现用户与提取算法得交互,能得到比较好的提取效果。
    通过交互式提取法提取ROI得实现过程如下:
    (1)提取原图得R、G、B分量;
    (2)使用ginput函数获得所选择点得坐标;
    (3)使用line函数在两个相邻选择点连线,直到终点与起点重合,连成封闭区域;
    (4)使用roipoly函数选择封闭折线围成得灰度图得多边形区域,背景部分为黑,区域内为白;
    (5)将原图得RGB分量分别与roipoly所得到得多边形区域图像做点乘运算,并联结各分量归一化,得到去除背景保留感兴趣区域得图像。
    优点:以用户为中心,让用户自己定义图像得感兴趣区域,不管边界复杂或简单,都可以人为精确选择感兴趣边缘,从而很好得提取出用户感兴趣得区域图像,即精度高。
    缺点:依赖于用户得自定义操作,处理速度不高,交互式过程复杂,不易做到友好、自然、不适应大量图片得感兴趣区域提取。
    很好得一个例子:https://www.ilovematlab.cn/thread-56748-1-1.html

    自动图像分割提取法见下一篇博客。

    展开全文
  • 针对图像底层特征对感兴趣区域(ROI)提取的影响程度问题,提出了一种方向特征融合的ROI提取算法.利用眼动实验数据得到实际的ROI图和方向叠加图计算相似度,融合方向叠加图和Stentiford视觉注意图,经反馈和权重调整后,...
  • 为降低数据规模,提高图像处理的效率,针对感兴趣区域(ROI)提取的问题,提出了一种基于显著点的ROI提取算法.利用视觉注意模型(VAM)得到显著图,聚类显著图二值化后提取到的显著点,同时将原图像二值化,并以聚类点作为种子...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 881
精华内容 352
关键字:

感兴趣区域提取