image processing using Matlab

조회 수: 2 (최근 30일)
Nisreen Sulayman
Nisreen Sulayman 2014년 7월 31일
댓글: Image Analyst 2014년 8월 1일
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