创建一个自动多段线

9的观点(30天)
约旦Venancio雷特
约旦Venancio雷特 2020年3月11日
评论道: Rena伯曼 2020年10月12日
我的目标是创建一个自动折线在附件图片中,这是一个与泡沫管,所以我可以aproximate泡沫任何多边形的面积。我不知道使用哪个函数或命令。我在互联网上搜索引用,我唯一发现的“手动”折线(链接)。有人能帮助我吗?
提前谢谢!
7评论
Rena伯曼
Rena伯曼 2020年10月12日
(答案Dev)恢复编辑

登录置评。

接受的答案

Turlough休斯
Turlough休斯 2020年3月12日
它看起来像你有一个二进制图像但你上传jpeg,我包括三行“解决方案”,回到最初的二进制图像,但理想你将包括图像通过保存图像变量从工作区.mat文件并将它附加到这个问题。
指定折线首先需要找出顶点的位置坐标和我使用边界函数。我们也只需要输入点周边附近的边界函数工作,所以使用bwperim首先比输入更有效点对应的内部泡沫。
最后,在周边的顶点可以输入到drawpolyline函数所示。你会得到大约一个顶点上的每个像素周边,我猜你不想吸引每一个人,所以“跳过”的值可以调整每顶点跳过或多或少的像素要求。
清晰的
关闭所有
clc
字形大小= 16;
跳过= 10;
%右击图像提供的问题>另存为“Jordan.jpeg”工作
为matlab %目录。
%加载图片
我= imread (“Jordan.jpeg”);
%的解决方法回到一个二进制图像
我:[1:86 403:结束],:)= 0;
我([1:31 500年底):,:,:)= 0;
B = imbinarize (rgb2gray (I));
%显示初始图像
高频=图(“单位”,“归一化”,“OuterPosition”,(0 0 1 1));
次要情节(1、2、1),imshow (B)
标题(“初始二进制映像”,“字形大小”字形大小)
%这一步不是必需的,但是以后加速使用边界。
Bperimeter = bwperim (B);
Bperimeter = imdilate (Bperimeter strel (“广场”2));
次要情节(1、2、2),imshow (Bperimeter)
标题(“由于bwperim”,“字形大小”字形大小)
%得到x, y坐标的周长(列索引和行索引,
%)
[y、x] =找到(Bperimeter);
k =边界(x, y, 1);%使用边界损耗因子1的顶点
%初始二进制图像,使用最近添加多段线
%得到顶点
次要情节(1、2、1)
drawpolyline (“位置”[x (k(1:跳过:结束))y (k(1:跳过:结束))))
3评论
Turlough休斯
Turlough休斯 2020年3月14日
编辑:Turlough休斯 2020年3月14日
你可以确保它关闭通过添加第一个索引
清晰的
clc
关闭所有
字形大小= 16;
跳过= 160;
负载(“Image.mat”)
B = preenc;
%显示初始图像
高频=图(“单位”,“归一化”,“OuterPosition”,(0 0 1 1));
次要情节(1、2、1),imshow (B)
标题(“初始二进制映像”,“字形大小”字形大小)
%这一步不是必需的,但是以后加速使用边界。
Bperimeter = bwperim (B);
Bperimeter = imdilate (Bperimeter strel (“广场”4));
次要情节(1、2、2),imshow (Bperimeter)
标题(“由于bwperim”,“字形大小”字形大小)
%得到x, y坐标的周长(列索引和行索引,
%)
[y、x] =找到(Bperimeter);
k =边界(x, y, 1);%使用边界损耗因子1的顶点
%初始二进制图像,使用最近添加多段线
%得到顶点
次要情节(1、2、1)
%添加修改部分在k(1)的一端确保关闭多边形
idx = [k(1:跳过:结束)、k (1)];
drawpolygon (“位置”[x (idx) y (idx)))
我还用drawpolygon代替drawpolyline。至于近似半椭圆,我会尝试使用regionprops作为图像分析师建议。

登录置评。

更多的答案(0)

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的