matlab里面,怎样截取一个圆形区域?已知圆心和半径,怎样确定这个区域?

作者&投稿:枞姚 (若有异议请与网页底部的电邮联系)
利用matlab,怎样在RGB彩图截取某个特定位置圆形区域(注意,不是定位和识别圆)?已知圆心和半径,~

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:
ewimg.jpg' );% 截图可以保存



1、按照圆的定义,若圆半径为r,圆心坐标为(a,b),然后生成一系列在该圆上面的点(x,y),那么程序如下:(先取r=3,a=1,b=2)
r=3; a=1; b=2;
x=[a-r: 2*r/100: a+r ];
y1=sqrt(r^2-(x-a).^2)+b;
y2=-1*sqrt(r^2-(x-a).^2)+b;

figure
plot(x,y1); hold on
plot(x,y2); hold off
2、结果如下图:

[x,y]=size(m);%m为原图
[X,Y]=meshgrid(x,y);
m1=m.*((X^2+Y^2)<=r^2)%m1是选择的部分

%这个要画图,有句柄
imshow(image);%显示图像
h = drawcircle('Center',[x0,y0],'Radius',r);
mask=createMask(h);

或者
%这个不用画图
rows=576;
cols=720;
x = 1:rows; %rows为图像行数
y = 1:cols; %cols为图像列数
[xx,yy] = meshgrid(y,x);
inds = sqrt((yy-20).^2 + (xx-35).^2)<=50; %(20,35)是圆心,50是半径

x,y]=size(m);%m为原图
[X,Y]=meshgrid(x,y);
m1=m.*((X^2+Y^2)<=r^2)%m1是选择的部分

[x,y]=size(m);%m为原图
[X,Y]=meshgrid(x,y);
m1=m.*((X^2+Y^2)<=r^2)%m1是选择的部分


怎么在matlab里面画图?
1.我们需要对matlab有一个初步的了解后,才可能完成后续的步骤,例子如下:2.现在我们需要把图形隐藏起来,也就是不主动弹出图形窗口,这一步需要我们了解相关的函数句柄的知识,具体看图:3.在上一步中,函数图形的可见性(visible)已经关闭(off),也就是被隐藏起来了,接着我们得把plot函数做出的图...

在Matlab里面如何实现字符
在Matlab中,字符操作功能强大且灵活。你可以通过以下几种方式实现字符的连接和格式化:1. 使用`blanks`函数生成指定空格数的空白字符串。2. 通过中括号`[]`连接多个字符串,可以是字符数组或元胞数组。3. `strcat`函数连接字符串,会自动去除尾部空格或特殊字符。连接元胞数组时,注意元素需同大小,且...

MATLAB里面怎么提取一个行向量的某几列元素?
首先,打开MATLAB,创建一个矩阵,例如a=[146;789],这将创建一个2x3的矩阵。接着,通过reshape函数将其转换为行向量。输入b=reshape(a,1,6),这里的1表示行数,6表示元素总数,这会将矩阵a的元素展平成一个1行6列的行向量。执行这个命令后,你会看到矩阵a已经被转换成了行向量,显示在屏幕上。

编制好了MATLAB程序,怎么在MATLAB里面运行?
1、如下图所示,打开MATLAB软件后点击File\/New\/Script后,会出现文件编辑窗口:2、在文件编辑窗口输入代码(以plot函数代码为例),如下图所示:3、检查代码,确保没有错误后点击窗口中运行(Run)按钮,运行程序(如下图红色箭头所示按钮):4、查看运行结果,由于利用plot函数绘制曲线,所以运行后出现如下...

如何在MATLAB里面生成一个m文件?
可以参考下面的代码:编写M文件,代码如下。F=input('Enter the temperature in degrees Fahrenheit?');C=5\/9*(F-32);disp([num2str(F),' deg F equals ',num2str(C,'%.1f'),' deg C'])然后运行即可

matlab里面或怎么表示
在MATLAB中,"或"用逻辑运算符"||"表示。MATLAB中的逻辑运算符是用于执行布尔逻辑操作的符号,这些符号用来表示某些条件的真或假。"或"是其中一个常见的逻辑运算符。在MATLAB中,如果你需要表示逻辑中的“或”关系,你应该使用“||”。这意味着如果两个或多个条件中的任何一个满足,那么整个表达式就...

sin函数在matlab里面怎么用?
matlab的库里面就已经有sin函数的程序了,只要直接进行调用就可以。比如说sin(2x)在matlab里面就直接是sin(2*x)这样就调用了。2*pi*f0*i =2*pi*0.5*i =pi*i 由于i是整数,所以就是pi的整数倍。知道pi的整数倍的正弦值是0,之所以越来越大。是因为pi与真实的圆周率之间有误差,在i越大时...

MATLAB里面怎么输出希腊字母?
Matlab的命令窗口中是没有办法输出希腊字母的,但是画图的时候可以在图中输出希腊字母。希腊字母等特殊字符用 \\加拼音 表示,拼音首字母大写表示大写的希腊字母(如果有的话),小写表示小写的希腊字母。如下面的命令:figure(1);clf;title('\\alpha');xlabel('\\beta');ylabel('\\Gamma');结果如下:...

matlab怎么打开?
1、打开桌面上的“此电脑”图标。2、找到碾庄matlab文件的盘的位置,这里它安装到了D盘上,所以打开D盘。3、进入后打开“matlab”文件夹,这就是安装的的文件。4、进入“matlab”文件里面后,你会看见一个“bin”文件夹,打开它。5、打开后,找到“matlab.exe”这个应用程序,双击就能启动matlab程序,...

matlab中的如何跳出while死循环
1、首先打开电脑和matlab软件,新建一个m文件,并在m文件里面输入一个死循环的代码,如下所示,for循环里面的inf是表示一个无穷大数的意思。2、然后点击matlab上面的绿色run按钮,可以看到Command Window里面一直处于运行busy状态,也就是死循环的状态。3、此时退出该死循环的第一个方法:就是把光标定位到...

墨竹工卡县13776168382: 如何用matlab在一幅图像中截取一个半径为r的圆,已知圆心(200,200) -
友纪诺松: [x,y]=size(m);%m为原图 [X,Y]=meshgrid(x,y); m1=m.*((X^2+Y^2)

墨竹工卡县13776168382: 如何用MATLAB在一幅矩形图片中截取出一个圆环 -
友纪诺松: 如果你有这个区域的坐标,如左上角坐标(r1,c1)和右下角坐标(r2,c2),那么这块区域就是

墨竹工卡县13776168382: 利用matlab,在点云数据中,怎么取出一个圆形( -
友纪诺松: 听说是这样:逐个计算每个点和圆心的距离,大于半径则舍弃,小于等于半径则保留

墨竹工卡县13776168382: 求助大神,matlab中选取圆形区域 -
友纪诺松: 哎,看来我上次没给你的问题解决彻底啊...这个肯定是你想要的了,把这个function保存成.m文件. 它会让你选两个点,第62616964757a686964616fe59b9ee7ad9431333332643238一个点是圆心,第二个是圆上任意一点.function roi = ...

墨竹工卡县13776168382: 请问怎么样在matlab中用程序截取一部分图形 -
友纪诺松: % 由于读入图像的方法你已经掌握,所以这里只示范怎样截取图像的部分 % 需要说明的主要有以下几点: % 1、图像数据有索引色和真彩色这两种不同格式,截取前需要搞清楚是哪一种; % 2、截取图像实际上就是取出数组的部分; % 3、数...

墨竹工卡县13776168382: matlab中怎样镂空出一个圆形区域 -
友纪诺松: N = 512; r = 100; [xx yy] = meshgrid(-N/2:N/2-1); z = sqrt(xx.^2 + yy.^2); z = (z<=r);

墨竹工卡县13776168382: 我在matlab上从一个彩色图片上截取的图是黑白的,怎样截取彩色的?我给出这部分的代码,如果有用会追加的 -
友纪诺松: b=I(i-r:i+r,j-r:j+r,:); % b 应为3维RGB矩阵

墨竹工卡县13776168382: 怎样用matlab从一张图片中截取一小张图片 -
友纪诺松: 假设1.有一张图交myMap是256*256的,提取出来放在newMap里面2.从myMap的(n,m)的坐标开始提取.使用的坐标是右上角为原点,x水平向右,y垂直向下.3.图像是rgb的%matlab的图像坐标是右上原点,x垂直向下 newMap(1:32,1:32,:)=...

墨竹工卡县13776168382: 如何用matlab实现将一个圆等分成720份 -
友纪诺松: r=12; t=2*pi*(0:719)/720; r0=0; for i=1:720 plot([r0*cos(t(i)),r*cos(t(i))],[r0*sin(t(i)),r*sin(t(i))]) hold on end ezplot('12*cos(t)','12*sin(t)') hold off

墨竹工卡县13776168382: 如何截取matlab绘制的图像 -
友纪诺松: 图片窗口选项file ->save as 选项里可以选保存格式的啊 另外,你也可以在 edit -> copy figure里直接复制图像嘛~

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网