作业帮 > 综合 > 作业

利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/19 12:40:40
利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,
例如,我用 plot 函数在图像上框定了某个位置(圆心,半径已知),我知道可以用imcrop函数剪切矩形区域,但圆形区域呢?最好椭圆形也说一下,(要求提供matlab代码,以及相关解释)
我知道百度知道中有个这样代码,但我尝试了一些,只能对二值图,程序运行错误
可能我理解错误
[x,y]=size(m); %m为原图
[X,Y]=meshgrid(x,y);
m1=m.*((X^2+Y^2)
figure( 1 );
imshow(
% 使用椭圆在figure上创建一个椭圆,这四个数决定你截图的位置和大小
% [ 椭圆外接矩形的左上角x,左上角y,宽,长 ]
% 这个椭圆在figure上可以拖拽
h = imellipse( gca,[ 150,150,300,500 ] );

% 把这个椭圆转为一个和img同样大小的二值图,1表示椭圆内部,0表示外部
BW = createMask( h );

% 根据二值图构建截图,椭圆外的都染黑
[ w,h,d3 ] = size( newfor i = 1 :d3
    band = img( :,:,i );
    newband = zeros( w,h,'uint8' );
    newband( BW ) = band( BW );
    newimg( :,:,i ) = newband;
end

figure( 2 );
imshow( new% imwrite( 'D:\newimg.jpg' );% 截图可以保存



再问: 很感谢,刚试了,结果和你所说一样,
那能不能把椭圆外面的黑色去掉,只要椭圆中图像,(即图像形状就是个椭圆)
或者把椭圆外边改为白色也行,感激不尽。
再答: 那就在figure(2)之前一行:new顶多就是把椭圆的外接矩形区域抠出来,因为图像必须是方的。