ImageProcessing MatLab

时间:2015-07-22 14:21:10

标签: matlab image-processing video-processing

我有一个焊接程序的视频,每个框架我需要采取焊接区域的所有轮廓,并检测所有边缘。 不幸的是,我得到的图像不是最好的质量,我试图放置几个滤镜并使图像增强,但它不能用于锐利边缘。

下图:

我设法制作了以下代码,但结果非常糟糕。

clc

clear all

vid = VideoReader('home/simulation/V6_008.avi');

h=ones(3,3)/9;

for i=1 : mov.NumberOfFrames

thisframe = read(vid,i);

g = image(thisframe);

lsave = sprintf('image.jpg');

saveas(g, lsave, 'jpg')

a = imread(lsave);

a1 = imcrop(a,[150 450 650 300]);

a2= imsharpen(a1,'Radius',50,'Amount',500);

b = rgb2gray(a2);

c=imadjust(b,[0.6 0.8],[]);

c1= imfilter(c,h);

c2=adapthisteq(c1,'cliplimit',0.01,'Distribution','exponential');

d = edge(c1,'canny',0.1);

e=bwareaopen(d,50);

imshow(e) end

这些过滤器和图像增强有一点帮助,但我的测量仍然没有。

所以我有两个问题:

1)你知道我可以用什么其他工具来清理边缘检测吗?我只想概述你所看到的指定区域。

2)我需要对每一帧进行边缘检测,然后保存所有帧,并在边缘检测后保存视频。我真的不知道怎么做。你呢?

非常感谢你们,如果它令人困惑,我道歉。 我担心如果我没有完成这个,我会非常困扰.. :(。 再次感谢,我赞不绝口!

这是边缘检测后理想情况下的边缘:

enter image description here

0 个答案:

没有答案