前言
本文给出在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个点的坐标值。
![e9202dde0570c56e1ee1e3edd007875a.png](https://i-blog.csdnimg.cn/blog_migrate/51ebc15dc482d171534d73c78bc289ea.png)
随后我们使用roipoly函数来创建一个掩膜图像,如下图所示:生成的感兴趣区域内部值为1,区域外的值被置为0;
![c55e94cade317c717cd79d82096431d1.png](https://i-blog.csdnimg.cn/blog_migrate/6793bda56dbb0d74e40b46479efb2544.png)
最后,我们将掩膜图像与原图相乘,便得到了感兴趣的区域。如下图所示:
![bdb558cacfd45793818984582d4c59ac.png](https://i-blog.csdnimg.cn/blog_migrate/f5fb554c674c7d91006460e52f5293b8.png)
用途
提取出感兴趣区域后,我们可进行下一步信息的提取。例如在空间载波剪切散斑干涉中,通过傅里叶变换后,得到相应的频谱图,随后用该方法可提取出高频部分,对获取的频谱进行逆傅里叶变换,并提取相位,得到包裹相位图。
创作不易,如果本文帮助到你,那就点个赞~关注一下吧~我们将更新更多优质内容~