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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

7 条回复


toiday 发表于 2020-11-21 14:38:11
图片是一个物质的燃烧照片,图中有点透明的可能是有机玻璃,我需要把它表面的形状绘制出一条曲线:D

toiday 发表于 2020-11-21 17:48:47
这是我处理过后的图像。。但是都很粗糙,请问大佬们怎么只保留物质表面的那条曲线啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

myisland 发表于 2020-11-24 11:45:07
以最亮的背景区域作为种子点,区域生长。生长阈值可以选择滑动阈值,动态更新!

TommyC 发表于 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);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

TommyC 发表于 2020-11-24 20:19:33
TommyC 发表于 2020-11-24 20:19
I = imread('E:%users\Administrator\Desktop\微信图片_20201121143216.jpg');
Igray = rgb2gray(I);
figur ...

横纵坐标为像素,具体多大看分辨率

myisland 发表于 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
结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

toiday 发表于 2020-11-26 11:27:22
谢谢两位的解答!刚看到。。自己用另一种比较方式拟合出曲线了,对比了一下自己的方式麻烦了许多,没有两位的代码这么简洁:Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表