Coronary Artery Edge Detection

32 views (last 30 days)
Uluç Ali
Uluç Ali on 12 Dec 2024 at 14:20
Answered: Swastik Sarkar on 18 Dec 2024 at 10:11
Hello everyone, I am working on developing a system that determines the boundaries of coronary arteries and calculates their tortuosity. The code I have written works well on certain datasets. However, it struggles to process low-quality images due to reasons such as contrast imbalance or blurriness. What kind of improvements can I make to ensure the code works on a broader range of data, or are there better methods you would recommend? I’ll share the code below. Thank you in advance.
function sequential_edge_detection()
img = imread("image.jpg");
if size(img, 3) == 3
img_gray = rgb2gray(img);
else
img_gray = img;
end
img_gray = im2double(img_gray);
img_smooth = imgaussfilt(img_gray, 2);
img_clahe_1 = adapthisteq(img_smooth);
options = struct('FrangiScaleRange', [1 5], ...
'FrangiScaleRatio', 1, ...
'BlackWhite', true, ...
'verbose', false);
[frangi_img, ~] = FrangiFilter2D(img_clahe_1, options);
img_clahe_2 = adapthisteq(mat2gray(frangi_img));
edges_canny = edge(img_clahe_2, 'Canny', [0.1, 0.3]);
figure;
imshow(edges_canny);
title('Final Edge Detection');
end

Answers (1)

Swastik Sarkar
Swastik Sarkar on 18 Dec 2024 at 10:11
Several methods are available to improve the workflow for edge detection, which may require improvisation based on the following options:
  • Instead of using imgaussfilt, consider utilizing imbilatfilt, an edge-preserving Gaussian bilateral filter.
  • The imdiffusefilt function can be employed to smooth out the edges of the image.
In both cases, strel can be used to clean up and connect edges after detection in the following way
s = strel('disk', 2);
imclose(edge ,s)
For more information regarding these functions, refer to the following documentation:

Categories

Find more on Biomedical Imaging in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!