今天帮同学写个算法,要用到圆形模板,处理圆形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);
原图:
mask
灰度图mask结果
rgb图mask结果