matlab提取多边形区域_Matlab | 提取图像ROI任意形状

前言

本文给出在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;掩膜图像

最后,我们将掩膜图像与原图相乘,便得到了感兴趣的区域。如下图所示:提取感兴趣区域

用途

提取出感兴趣区域后,我们可进行下一步信息的提取。例如在空间载波剪切散斑干涉中,通过傅里叶变换后,得到相应的频谱图,随后用该方法可提取出高频部分,对获取的频谱进行逆傅里叶变换,并提取相位,得到包裹相位图。

创作不易,如果本文帮助到你,那就点个赞~关注一下吧~我们将更新更多优质内容~

你可能感兴趣的:(matlab提取多边形区域)