image processing using Matlab

2 次查看(过去 30 天)
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 个评论
Nisreen Sulayman
Nisreen Sulayman 2014-7-31
编辑:Nisreen Sulayman 2014-7-31
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
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
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 个评论
SRI
SRI 2014-8-1
Hi
You need to crop that oval part alone in this image
Image Analyst
Image Analyst 2014-8-1
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