编程语言及工具
感兴趣区域(Regions of Interest,ROI)这一概念,是指图像中最能引起用户兴趣、最能表现图像内容的区域。感兴趣区域(Regions of Interest,ROI)就是图像中表现图像主要内容、人们最感兴趣的那一部分区域[1],这些关键区域称为感兴趣区域。图像感兴趣区域的提取具有以下特点:
(1)感兴趣区域并没有十分严格的定义。对于同一幅图像而言,在不同的应用背景下,人们的关注角度不同,对图像的具体需求也相应会有所不同,因此会按各自的需求定义图像中的感兴趣区域。
(2)现有的感兴趣区域算法都依赖于图像的颜色、形状、纹理等底层特征。由于图像的语义特征获取并没有特别有效的算法,现阶段感兴趣区域的检测和提取大多基于感兴趣区域所具有的低层特征。 对图像ROI的提取,一般从两方面着手解决:一是利用图像分割技术提取ROI;另外一个就是从人眼的视觉特性出发,通过模拟人眼的视觉特点,寻找特定的视觉敏感区域,并将这些视觉敏感区域排序作为ROI。
在统计过程中,需要对特定的对象进行数据处理与分析,本文为图像处理数据分析的过程中提取感兴趣的区域,并进行保存的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
全部0条评论
快来发表一下你的评论吧 !