image processing using Matlab

1 view (last 30 days)
Nisreen Sulayman
Nisreen Sulayman on 31 Jul 2014
Commented: Image Analyst on 1 Aug 2014
Hi
I have the following result of segmentation
How can I improve the results?
1) I want to improve the appearance to get the vessels more smooth.
2) I want to extract the oval-like part of the vessels in the middle of the image.
Any suggestions?
*****************
Here is a link to the image
https://copy.com/GT6n8EF82BKw

Accepted Answer

Evan
Evan on 31 Jul 2014
Edited: Evan on 31 Jul 2014
For your first question:
Is this strictly for appearances? If so, does medfilt2 do what you want?
rawImg = rgb2gray(imread('seg_vessel.jpg'));
nbhd = [2 2]; %play around with neighborhood size to get the smoothness you want
smoothedImg = medfilt2(rawImg,nbhd);
figure;imagesc(rawImg); colormap(gray)
figure;imagesc(smoothedImg); colormap(gray)
  1 Comment
Nisreen Sulayman
Nisreen Sulayman on 31 Jul 2014
Edited: Nisreen Sulayman on 31 Jul 2014
thanks Mr. Evan, I've tried medfilt2 ... can you suggest another thing ... the above code didn't gave the desired effect... I tried to use nbhd=[3 3] unfortunately it separates the vessels path

Sign in to comment.

More Answers (2)

SRI
SRI on 31 Jul 2014
inputImage = imread('seg_vessel.tif');
grayImage = rgb2gray(inputImage);
binaryImage = im2bw(grayImage,level);
[B,W,D,T] = bwboundaries(binaryImage);
imshow(W)
Hi Kindly Look into the code, this might be the result which you had expected

SRI
SRI on 31 Jul 2014
inputImage = imread('seg_vessel.tif');
grayImage = rgb2gray(inputImage);
level = graythresh(grayImage);
binaryImage = im2bw(grayImage,level);
[B,W,D,T] = bwboundaries(binaryImage);
imshow(W)
Sorry Use this one
  3 Comments
Image Analyst
Image Analyst on 1 Aug 2014
You can use imopen() to snip off pointy parts or use imclose() to blur out the boundary.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!