前言
本文给出在matlab中如何提取图像任意形状的感兴趣(ROI)区域的程序及分析。
程序
程序如下:
clc;clear;
I=imread('1.bmp'); % 读取一张图片
imshow(I); % 显示原始图像
i=rgb2gray(I); % 变为灰度图像
[c,r]=ginput(20); % 20表示点选次数,20个点连线成多边形,生成感兴趣区域。
BW= roipoly(I,c,r); % 创建二值掩膜图像
figure
imshow(BW)
c=immultiply(i,BW);
figure
imshow(c)
分析
我们使用ginput函数来得到感兴趣区域的点,函数内的20表示选用20个点以形成多边形,包围我们所感兴趣的部分,感兴趣区域如图中的红线所示:我们在这个区域点上20个点,同时返回得到这20个点的坐标值。待处理图像及感兴趣区域
随后我们使用roipoly函数来创建一个掩膜图像,如下图所示:生成的感兴趣区域内部值为1,区域外的值被置为0;掩膜图像
最后,我们将掩膜图像与原图相乘,便得到了感兴趣的区域。如下图所示:提取感兴趣区域
用途
提取出感兴趣区域后,我们可进行下一步信息的提取。例如在空间载波剪切散斑干涉中,通过傅里叶变换后,得到相应的频谱图,随后用该方法可提取出高频部分,对获取的频谱进行逆傅里叶变换,并提取相位,得到包裹相位图。
创作不易,如果本文帮助到你,那就点个赞~关注一下吧~我们将更新更多优质内容~