如何找到阈值?
How to find thresholds?
我阅读了一个名为 "Image Processing Made Easy". It references this code 的 MATLAB 网站:
rmat=Im(:,:,1);
gmat=Im(:,:,2);
bmat=Im(:,:,3);
subplot(2,2,1), imshow(rmat);
title('Red Plane');
subplot(2,2,2), imshow(gmat);
title('Green Plane');
subplot(2,2,3), imshow(bmat);
title('Blue Plane');
subplot(2,2,4), imshow(I);
title('Original Image');
%%
levelr = 0.63;
levelg = 0.5;
levelb = 0.4;
i1=im2bw(rmat,levelr);
i2=im2bw(gmat,levelg);
i3=im2bw(bmat,levelb);
Isum = (i1&i2&i3);
我们如何找到值 levelr
、levelg
和 levelb
?
有点晚了,但我发现内置的 MATLAB 函数 graythresh() 工作得很好。它依赖于 Otsu 的方法(非常有名,在文档中有描述)并且与 imbinarize/im2bw.
配合得很好
例如,
levelr = graythresh(rmat)
和 levelr
将是 0 - 1.0
之间的阈值
我阅读了一个名为 "Image Processing Made Easy". It references this code 的 MATLAB 网站:
rmat=Im(:,:,1);
gmat=Im(:,:,2);
bmat=Im(:,:,3);
subplot(2,2,1), imshow(rmat);
title('Red Plane');
subplot(2,2,2), imshow(gmat);
title('Green Plane');
subplot(2,2,3), imshow(bmat);
title('Blue Plane');
subplot(2,2,4), imshow(I);
title('Original Image');
%%
levelr = 0.63;
levelg = 0.5;
levelb = 0.4;
i1=im2bw(rmat,levelr);
i2=im2bw(gmat,levelg);
i3=im2bw(bmat,levelb);
Isum = (i1&i2&i3);
我们如何找到值 levelr
、levelg
和 levelb
?
有点晚了,但我发现内置的 MATLAB 函数 graythresh() 工作得很好。它依赖于 Otsu 的方法(非常有名,在文档中有描述)并且与 imbinarize/im2bw.
配合得很好例如,
levelr = graythresh(rmat)
和 levelr
将是 0 - 1.0