How to detect white regions in image
이전 댓글 표시
I have a code below to detect exudates from retina Images
clc;
close all;
clear all;
workspace; % Display workspace panel.
% filename = 'C:\Documents and Settings\tk2013\My Documents\Temporary
% stuff\fundus.jpg';
rgbImage = imread('2.jpg');
[rows columns numberOfColorPlanes] = size(rgbImage);
subplot(3, 3, 1);
imshow(rgbImage, []);
title('Original color Image');
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
tic;
redPlane = rgbImage(:, :, 1);
greenPlane = rgbImage(:, :, 2);
figure,imshow(redPlane)
K = imadjust(redPlane);
figure
imshow(K)
SE = strel('rectangle',[7 5]);
BW3 = imdilate(K,SE);
figure,imshow(BW3)
s=strel('square',12);
h=(imclose(BW3,s));
figure,imshow(h)
greenPlane=h;
[pixelCountsG GLs] = imhist(greenPlane);
% Ignore 0
pixelCountsG(1) = 0;
% Find where histogram falls to 10% of the peak, on the bright side.
tIndex = find(pixelCountsG >= .1*max(pixelCountsG), 1, 'last');
thresholdValue = GLs(tIndex)
binaryGreen = greenPlane>thresholdValue;
binaryImage = imfill(binaryGreen, 'holes');
% Get rid of blobs less than 5000 pixels.
binaryImage = bwareaopen(binaryImage, 5000);
figure,imshow(binaryGreen)
but the final output is only black,kindly help to extract the exudates from the above code,I have attached the images,I tried with different thresholds but could not get answer


답변 (2개)
Image Analyst
2014년 11월 11일
1 개 추천
So much wrong but I don't have time to fix it all. For starters, comment out the bwareaopen() function. And plot the histogram so you can see its shape.
댓글 수: 2
Pat
2014년 11월 12일
Image Analyst
2014년 11월 12일
The red plane will have the least contrast. The blue or green channel will have more. That's why in my code I chose the green channel. But then you inserted code to adjust and do morphology on the red channel and then stick that modified red channel image into a variable deceptively named greenChannel.
I'm not going to have time to look at this for several days, if at all, so I ask you to look at algorithms published here http://www.visionbib.com/bibliography/contentsmedical.html#Medical%20Applications,%20CAT,%20MRI,%20Ultrasound,%20Heart%20Models,%20Brain%20Models in Section 20.5, where people show how they've successfully done it. There is no need to invent your own algorithm when people have been working for months or years on algorithms and have published them for you to simply implement.
Your question is not clear. According to your code you need to concentrate (threshold and bwareaopen). You will get exactly what you are looking for.
댓글 수: 12
Pat
2014년 11월 12일
Pat
2014년 11월 12일
Pat
2014년 11월 12일
Siam
2014년 11월 12일
your question is how to detect white regions. Now you want to remove nerves. Nerves have different color and therefore; it will not show in binary image but will show black according to the code. Not sure what do you mean by remove optic nerves.
Pat
2014년 11월 12일
Pat
2014년 11월 12일
Pat
2014년 11월 12일
Pat
2014년 11월 13일
Pat
2014년 11월 13일
Siam
2014년 11월 17일
Are you still having issues to get the result?
Pat
2014년 12월 7일
카테고리
도움말 센터 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
