image processing using Matlab

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

 采纳的回答

Evan
Evan 2014-7-31
编辑:Evan 2014-7-31
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 个评论

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

请先登录,再进行评论。

更多回答(2 个)

SRI
SRI 2014-7-31

0 个投票

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 2014-7-31

0 个投票

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 个评论

I haven't got the desired result this is what I got ...
I want to get ride of small line and elongated parts which give "coarse look" of the image above
Hi
You need to crop that oval part alone in this image
You can use imopen() to snip off pointy parts or use imclose() to blur out the boundary.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by