필터 지우기
필터 지우기

otsu's code

조회 수: 1 (최근 30일)
shaimaa mohamed
shaimaa mohamed 2017년 8월 29일
답변: Image Analyst 2017년 8월 29일
I need code to segment red area only from this image
  댓글 수: 1
KALYAN ACHARJYA
KALYAN ACHARJYA 2017년 8월 29일
편집: KALYAN ACHARJYA 2017년 8월 29일
Otsu code use for Global Thresholding.
[T SM]=graythresh(input gray image);
Where T=Threshold>output from following code function otsuthresh SM=Separability Measure
Source: Gonzalez Book (Image Processing+Matlab)

댓글을 달려면 로그인하십시오.

답변 (2개)

KALYAN ACHARJYA
KALYAN ACHARJYA 2017년 8월 29일
%if true
function [T,SM]=otsuthresh(h);
h=h/sum(h);
h=h(:);
i=(1:numel(h))';
P1=cumsum(h);
m=cumsum(i.*h);
mG=m(end);
sigSquared=((mG*P1-m).^2)./(P1.*(1-P1)+eps);
maxSigsq=max(sigSquared);
T=mean(find(sigSquared==maxSigsq));
T=(T-1)/(numel(h)-1);
SM=maxSigsq/(sum(((i-mG).^2).*h)+eps);
% end

Image Analyst
Image Analyst 2017년 8월 29일
shaimaa, you would NOT use Otsu for that. You need to do it "manually". First identify the values of the starting and ending thermal values in your image. Let's say the red range starts at 32 degrees and ends at 33 degrees. So then to segment out those temperatures, you'd do
binaryImage = themalImage > 32 & thermalImage < 33;

Community Treasure Hunt

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

Start Hunting!

Translated by