Matlab论坛
直播中

尚文清

7年用户 1613经验值
私信 关注
[经验]

如何用MATLAB实现感兴趣区域ROI的选取

感兴趣区域 

感兴趣区域(Regions of Interest,ROI)这一概念,是指图像中最能引起用户兴趣、最能表现图像内容的区域。感兴趣区域(Regions of Interest,ROI)就是图像中表现图像主要内容、人们最感兴趣的那一部分区域,这些关键区域称为感兴趣区域。图像感兴趣区域的提取具有以下特点:
  (1)感兴趣区域并没有十分严格的定义。对于同一幅图像而言,在不同的应用背景下,人们的关注角度不同,对图像的具体需求也相应会有所不同,因此会按各自的需求定义图像中的感兴趣区域。
  (2)现有的感兴趣区域算法都依赖于图像的颜色、形状、纹理等底层特征。由于图像的语义特征获取并没有特别有效的算法,现阶段感兴趣区域的检测和提取大多基于感兴趣区域所具有的低层特征。 对图像ROI的提取,一般从两方面着手解决:一是利用图像分割技术提取ROI;另外一个就是从人眼的视觉特性出发,通过模拟人眼的视觉特点,寻找特定的视觉敏感区域,并将这些视觉敏感区域排序作为ROI。
1.png
matlab手动批量选取感兴趣区域  

在统计过程中,需要对特定的对象进行数据处理与分析,本文为图像处理数据分析的过程中提取感兴趣的区域,并进行保存的MATLAB程序,有需要的可以参考。


本文根据统计目标区域与背景区域的特征这个应用写的。

附上代码:
  1.  clc;

  2.   clear;

  3.   close all;

  4.   [filename,pathname,q]=uigetfile({‘*.*’;‘*.bmp’;‘*.jpg’;‘*.png’},‘select file’, ‘MultiSelect’, ‘on’); %可以选取多个图像

  5.   if ~iscell(filename)

  6.   filename1{1}=filename;

  7.   else

  8.   filename1=filename;

  9.   end

  10.   n=length(filename1);

  11.   object=cell(n,1); %建立目标数据库

  12.   environment=cell(n,1); %建立背景数据库

  13.   for i=1:n

  14.   image=imread(fullfile(pathname,filename1{i}));

  15.   a=rgb2gray(image);

  16.   figure

  17.   imshow(a);

  18.   hold on;

  19.   [x,y,c]=ginput(1); %手动选取目标区域

  20.   m(1)=x;

  21.   n(1)=y;

  22.   plot(x,y,‘r’);

  23.   k=2;

  24.   while(c==1)

  25.   [x1,y1,c1]=ginput(1);

  26.   if c1==1

  27.   m(k)=x1;

  28.   n(k)=y1;

  29.   plot(x,y,‘r’);

  30.   line([m(k-1) m(k)],[n(k-1) n(k)]);

  31.   k=k+1;

  32.   c=c1;

  33.   else

  34.   break

  35.   end

  36.   end

  37.   line([m(k-1) m(1)],[n(k-1) n(1)]);

  38.   BW = roipoly(a,m,n); %感兴趣区域提取的二值图像

  39.   obj=a;

  40.   env=a;

  41.   obj(BW==0)=0; %原图中显示目标区域

  42.   env(BW~=0)=0; %原图中显示背景区域

  43.   figure

  44.   imshow(obj);

  45.   figure

  46.   imshow(env);

  47.   object{i}=obj;

  48.   environment{i}=env;

  49.   save(strcat(‘object’,num2str(i),‘.mat’),‘obj’);

  50.   save(strcat(‘environment’,num2str(i),‘.mat’),‘env’);

  51.   close all;

  52.   end



更多回帖

发帖
×
20
完善资料,
赚取积分