在Matlab中交换图像中的圆形像素

萨汉·J

我想要的只是在一个半径和中心选定的图像中添加一个圆,但是我不想使用图COMMAND,我想要一个新的输出数组,上面有我选择的图像和圆。这是我的功能

function [ out_image ] = draw_circle( in_image,x0,y0,r,value)

其中in_image是输入图像x0 y0圆心,r半径值图像的强度

这是我的尝试,不起作用

ang=0:pi/100:2*pi
x=r*cos(ang)+x0;
y=r*sin(ang)+y0;
cir=[x,y];
[j,k]=size(cir);
for cir=1:j
    for cir=1:k     
if cir(i,j)==0
out_image(i,j)=in_image(i,j);
end
end
end

imshow(out_image)

end
复仇女神

我很确定有更好的方法,但是按照您的方法,您可以使用以下代码:

out_image = in_image;
cir = round([r*cos(ang)+x0;r*sin(ang)+y0]);
for i = 1:size(cir,2)
    out_image(cir(1,i),cir(2,i),:) = 255;
end

您的for循环与您编写循环的方式不同。另外,您应该使用round来获取索引,而不是浮点值。但是,圆圈​​很小(仅1个像素),对于大图片而言可能还不够。请参见下面的示例。另外,对于大图片,您可能需要更好的区分度,即中的大量元素ang在此处输入图片说明

如果您想要更大的线宽,可以使用

lw = 3; % Enter linewidth here
for i = 1:size(cir,2)
    out_image(cir(1,i)+(-lw:lw),cir(2,i)+(-lw:lw),:) = 255;
end

在此处输入图片说明编辑:万一您看不到它。该圆靠近左上角。

该功能的完整代码为:

function [ out_image ] = draw_circle( in_image,x0,y0,r,value,lw)

out_image = in_image;
ang = 0:pi/100:2*pi;
cir = round([r*cos(ang)+x0;r*sin(ang)+y0]);
for i = 1:size(cir,2)
    out_image(cir(1,i)+(-lw:lw),cir(2,i)+(-lw:lw),:) = value;
end
imshow(out_image)

您可以使用以下命令从命令行调用它

draw_circle(in_image,100,200,50,0,3);

注意,我将未使用的value值作为灰度值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在javascript中交换图像

来自分类Dev

如何更改/交换图像中的颜色?

来自分类Dev

如何随机交换图像的像素?

来自分类Dev

用特定值替换图像中的多个像素值Matlab

来自分类Dev

在Matlab中裁剪和转换图像

来自分类Dev

Matlab中的逆变换图像

来自分类Dev

MATLAB中图像的对角像素

来自分类Dev

如何使此交换图像代码在Wordpress中工作

来自分类Dev

如何在GridView中交换图像(Android)

来自分类Dev

如何在样式组件中交换图像URL?

来自分类Dev

单击后临时在按钮的背景中交换图像

来自分类Dev

在MATLAB中检测图像内的圆形

来自分类Dev

在Matlab中获取图像的中心像素

来自分类Dev

图像中像素颜色的插值,MATLAB

来自分类Dev

从图像中获取像素值:Matlab

来自分类Dev

在Matlab中打乱黑白图像的像素

来自分类Dev

如何使用OpenCV交换图像中的蓝色和红色通道

来自分类Dev

如何将鼠标悬停在单独的div中交换图像和文本?

来自分类Dev

如何使用OpenCV交换图像中的蓝色和红色通道

来自分类Dev

精确替换图像中的一个像素,然后通过Swift将其放置在另一图像中

来自分类Dev

使用MIPS中的Bresenham算法,尾部性会如何影响BMP文件中的图形像素?

来自分类Dev

使用MIPS中的Bresenham算法,尾部性会如何影响BMP文件中的图形像素?

来自分类Dev

使用MATLAB模糊RGB图像中的圆形区域

来自分类Dev

JS功能交换图像

来自分类Dev

基于变量交换图像

来自分类Dev

使用JavaScript交换图像

来自分类Dev

在滚动时交换图像

来自分类Dev

在Matlab中为灰度图像添加彩色像素

来自分类Dev

Matlab:如何找到彩色图像中黑色像素的数量?

Related 相关文章

热门标签

归档