我试图将图像离散化为黑白并遇到一些困难。字母和纸之间的区别在我们眼中非常清楚:
然而,一个简单的阈值技巧不起作用。在这里,我们将强度低于 0.4 的所有内容移至 0,将强度高于 0.4 的所有内容移至 1:
现在让我们尝试将阈值移动到 0.5 并且会出现一些令人讨厌的伪影:
我希望我可以采用试验 1 或试验 2 的“两全其美”。这是我使用的 Python 代码......基本上是介绍性教程,但有一些变化:
from skimage import io
from skimage import color
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize'] = 7,7
poem = io.imread('IMG_20151120_113157.jpg')
io.imshow(poem)
io.show()
poem_gray = color.rgb2gray(poem)
t = 0.5
poem_gray[poem_gray < t] = 0
poem_gray[poem_gray > t] = 1
io.imshow(poem_gray)
io.show()
这是我图像中黑白的直方图,以证明我的阈值约为0.45 我的眼睛在欺骗我!一些“白色部分”与文字一样暗。有没有更标准的方法来分离灰度图像?




