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

编程语言及工具

99人已加入

描述

  感兴趣区域

  感兴趣区域(Regions of Interest,ROI)这一概念,是指图像中最能引起用户兴趣、最能表现图像内容的区域。感兴趣区域(Regions of Interest,ROI)就是图像中表现图像主要内容、人们最感兴趣的那一部分区域[1],这些关键区域称为感兴趣区域。图像感兴趣区域的提取具有以下特点:

  (1)感兴趣区域并没有十分严格的定义。对于同一幅图像而言,在不同的应用背景下,人们的关注角度不同,对图像的具体需求也相应会有所不同,因此会按各自的需求定义图像中的感兴趣区域。

  (2)现有的感兴趣区域算法都依赖于图像的颜色、形状、纹理等底层特征。由于图像的语义特征获取并没有特别有效的算法,现阶段感兴趣区域的检测和提取大多基于感兴趣区域所具有的低层特征。 对图像ROI的提取,一般从两方面着手解决:一是利用图像分割技术提取ROI;另外一个就是从人眼的视觉特性出发,通过模拟人眼的视觉特点,寻找特定的视觉敏感区域,并将这些视觉敏感区域排序作为ROI。

ROI

  MATLAB手动批量选取感兴趣区域

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

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

  附上代码:

  clc;

  clear;

  close all;

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

  if ~iscell(filename)

  filename1{1}=filename;

  else

  filename1=filename;

  end

  n=length(filename1);

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

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

  for i=1:n

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

  a=rgb2gray(image);

  figure

  imshow(a);

  hold on;

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

  m(1)=x;

  n(1)=y;

  plot(x,y,‘r’);

  k=2;

  while(c==1)

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

  if c1==1

  m(k)=x1;

  n(k)=y1;

  plot(x,y,‘r’);

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

  k=k+1;

  c=c1;

  else

  break

  end

  end

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

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

  obj=a;

  env=a;

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

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

  figure

  imshow(obj);

  figure

  imshow(env);

  object{i}=obj;

  environment{i}=env;

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

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

  close all;

  end

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分