查看: 173|回复: 7|关注: 0

[已答复] Matlab燃烧表面生成曲线

[复制链接]

新手

10 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
发表于 2020-11-21 14:36:46 | 显示全部楼层 |阅读模式
  各位大大你们好,我是一名刚接触Matlab的小白,因为学院课题组有一个物质燃烧的项目,我需要把图示燃烧物质表面的曲线通过Matlab绘制出曲线得到曲线数据,对该怎么操作没有一点头绪,能麻烦各位大大给一些提示和思路嘛,小白感激不尽~:loveliness:

微信图片_20201121143216.jpg
回复主题 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2020-11-21 14:38:11 | 显示全部楼层
图片是一个物质的燃烧照片,图中有点透明的可能是有机玻璃,我需要把它表面的形状绘制出一条曲线:D
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2020-11-21 17:48:47 | 显示全部楼层
这是我处理过后的图像。。但是都很粗糙,请问大佬们怎么只保留物质表面的那条曲线啊
sav.png
回复此楼 已获打赏: 0 积分

举报

MATLAB 图像处理与计算机视觉
版块优秀回答者

中级

534 麦片

财富积分


5001500


71

主题

1686

帖子

115

最佳答案
  • 关注者: 36
发表于 2020-11-24 11:45:07 | 显示全部楼层
以最亮的背景区域作为种子点,区域生长。生长阈值可以选择滑动阈值,动态更新!
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


0

主题

5

帖子

0

最佳答案
发表于 2020-11-24 20:19:00 | 显示全部楼层
I = imread('E:\Users\Administrator\Desktop\微信图片_20201121143216.jpg');
Igray = rgb2gray(I);
figure
subplot(2,2,1)
imshow(Igray)
%imhist(Igray)
Igray(Igray<180) = 0;
subplot(2,2,2)
imshow(Igray)
Ibw = logical(Igray);
subplot(2,2,3)
imshow(Ibw)
Ibw1 = bwareaopen(Ibw ,10000);
subplot(2,2,4)
imshow(Ibw1)
Ibw2 = ~Ibw1;
Ibw3 = bwareaopen(Ibw2 ,10000);
subplot(2,2,4)
imshow(Ibw3)
[M,N] = size(Ibw1);
x= (1:N);
y = zeros(N,1)';
for i = 2:N
    for j = 2:M
       if Ibw3(j,i) - Ibw3(j-1,i) == 1
           y(i) = 600-j;
       end
    end
end
figure
plot(x,y);

处理效果图

处理效果图
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


0

主题

5

帖子

0

最佳答案
发表于 2020-11-24 20:19:33 | 显示全部楼层
TommyC 发表于 2020-11-24 20:19
I = imread('E:%users\Administrator\Desktop\微信图片_20201121143216.jpg');
Igray = rgb2gray(I);
figur ...

横纵坐标为像素,具体多大看分辨率
回复此楼 已获打赏: 0 积分

举报

MATLAB 图像处理与计算机视觉
版块优秀回答者

中级

534 麦片

财富积分


5001500


71

主题

1686

帖子

115

最佳答案
  • 关注者: 36
发表于 2020-11-25 10:21:16 | 显示全部楼层
toiday 发表于 2020-11-21 14:38
图片是一个物质的燃烧照片,图中有点透明的可能是有机玻璃,我需要把它表面的形状绘制出一条曲线 ...
  1. I = imread('https://www.ilovematlab.cn/data/attachment/forum/202011/21/143606v4tr6z6n604ak96r.jpg');
  2. im = rgb2gray(I);
  3. [x,y] = find(im==max(im(:)));
  4. P = regionGrow(im,[x;y],80); %附件
复制代码
原理:https://www.ilovematlab.cn/thread-163649-1-1.html
结果
capture-80.gif

regionGrow.m

3.61 KB, 下载次数: 4

区域生长

回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2020-11-26 11:27:22 | 显示全部楼层
谢谢两位的解答!刚看到。。自己用另一种比较方式拟合出曲线了,对比了一下自己的方式麻烦了许多,没有两位的代码这么简洁:Q
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /5 下一条

快速回复 返回顶部 返回列表