[max_value, index] = max(possible); % k) x% Q, m# T7 @0 f
TT = max_index(index) - 2; \" Y8 `) {+ N, [8 d3 p% H
$ z6 e4 \9 b- |. _+ \
R = zeros(m, n);3 Z+ E- Y Z8 }+ e
for i = 1:m ( j% a5 n9 D& n
for j = 1:n 0 }/ |+ Q. u) K/ f
if p(i, j) < TT+ u* ^) x\" K# O7 l9 a3 c
R(i, j) = 0; . B& T$ {' i6 S6 \\" x+ i2 Z/ ~
else ) ~1 w( t: z( x
R(i, j) = 256;: e K: ^) n# U+ a, Z8 y
end * R. J, Y8 t# M c$ G# F- c
end $ y0 S% f$ n6 _5 ~2 k& X: M8 r& W
end' S7 t3 h$ N6 E+ X
subplot(1,2,2); . [4 V$ U' E8 J# b
imshow(R);5 ^. {# l- f, q: C$ h
title('二值图');
复制代码
18.代码首先寻找灰度直方图中的双峰(双峰往往对应于两个主要的灰度区域),找到这些双峰的峰顶位置。; B3 @4 t4 }+ H Z4 R# B3 p* o
19.然后选择灰度直方图双峰之间的谷底位置作为阈值 TT。 # M H. J. Z! k8 u3 |4 K) K0 j20.接下来,通过一个嵌套循环,将灰度图像 p 根据阈值 TT 进行二值化处理,将像素值小于阈值的设为 0,大于等于阈值的设为 256。# L o2 w! i1 A/ x( [
21.最后,将二值化后的图像 R 显示在第二个子图中,标题为 '二值图'。9 V; P3 V# @# M; J4 x6 W9 W