Shock wave detection on poor-quality shadow image using Image Processing Toolbox
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Igor
am 13 Mär. 2020
Beantwortet: Shubh Sahu
am 23 Mär. 2020
Hi! I am trying to detect shock wave on image using Canny edge detection and other algorithms, but results are not so well.
Shock wave image is dark strip following the light one. The x-position which i want to detect is the boundary between ligt and dark strips.
So if image has good quality I can get it using Canny edge detection algorythm.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/277002/image.png)
But if stripes are barely visible (3 strips, indicated by red arrows), it can't resolve them.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/277003/image.png)
I tryed different image filters (imadjust, filter2, imsharpen) and binarization (imbinarize) with filtering (bwareafilt) but it didn't work.
Here is my code:
filename = 'goodQuality';
extension = '.png';
threshold = 0.4
sigma = 0.1
I = imread([filename extension]);
if size(I, 3) == 3
I = rgb2gray(imread([filename extension]));
end
[imageHeight, imageWidth] = size(I);
[gx gy]= imgradientxy(I);
cannyEdgeImage = edge(I,'Canny', threshold, sigma);
montage({I, cannyEdgeImage, gx}, 'Size', [3 1]);
So how can I improve image quality to detect barely visible vertical strips? Or should I use another edge detection method?
0 Kommentare
Akzeptierte Antwort
Shubh Sahu
am 23 Mär. 2020
It's tough to get the verticle lines you have mentioned because other lines are more prominent. I haven't tried but I hope gradient will help you to achieve what you want:
[Fx fy] = gradient(F);
0 Kommentare
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!