matlab 圆形模板ROI


今天帮同学写个算法,要用到圆形模板,处理圆形ROI里的图像,查了下资料stackoverflow上有个好的解法记录下啦,以免以后用到的时候还需要查。

img = imread('r_lena.png');
grayimg = rgb2gray(img);
[imgW,imgH] = size(grayimg);
t = linspace(0, 2*pi, 50);   %# approximate circle with 50 points
r = 100;                      %半径
c = [250 250];               %圆心坐标
%get circular mask
BW = poly2mask(r*cos(t)+c(1), r*sin(t)+c(2), imgW, imgH);
rgbmask(:,:,1) = BW;
rgbmask(:,:,2) = BW;
rgbmask(:,:,3) = BW;
rgbROI = immultiply(img,rgbmask);%
grayROI = immultiply(grayimg,BW);
figure,imshow(BW);
figure,imshow(rgbROI);
figure,imshow(grayROI);
原图:

r_lena

mask

BW

灰度图mask结果

grayROI

rgb图mask结果

rgbroi


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM