利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,例如,我用 plot 函数在图像上框定了某个位置(圆心,半径已知),我知道可以用imcrop函数剪切矩
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 20:44:26
利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,例如,我用 plot 函数在图像上框定了某个位置(圆心,半径已知),我知道可以用imcrop函数剪切矩
利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,
例如,我用 plot 函数在图像上框定了某个位置(圆心,半径已知),我知道可以用imcrop函数剪切矩形区域,但圆形区域呢?最好椭圆形也说一下,(要求提供matlab代码,以及相关解释)
我知道百度知道中有个这样代码,但我尝试了一些,只能对二值图,程序运行错误
可能我理解错误
[x,y]=size(m); %m为原图
[X,Y]=meshgrid(x,y);
m1=m.*((X^2+Y^2)
利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,例如,我用 plot 函数在图像上框定了某个位置(圆心,半径已知),我知道可以用imcrop函数剪切矩
figure( 1 );
img = imread( 'D:\TDDOWNLOAD\Kindle Book\封面图片\23174533-1_u_1.jpg' );
imshow( img );
% 使用椭圆在figure上创建一个椭圆,这四个数决定你截图的位置和大小
% [ 椭圆外接矩形的左上角x,左上角y,宽,长 ]
% 这个椭圆在figure上可以拖拽
h = imellipse( gca,[ 150,150,300,500 ] );
% 把这个椭圆转为一个和img同样大小的二值图,1表示椭圆内部,0表示外部
BW = createMask( h );
% 根据二值图构建截图,椭圆外的都染黑
[ w,h,d3 ] = size( img );
newimg = zeros( w,h,d3,'uint8' );
for i = 1 :d3
band = img( :,:,i );
newband = zeros( w,h,'uint8' );
newband( BW ) = band( BW );
newimg( :,:,i ) = newband;
end
figure( 2 );
imshow( newimg );
% imwrite( 'D:\newimg.jpg' );% 截图可以保存