我正在为学校项目制作手写识别代码。我们想收集我们自己的数据,而我正在开发一个程序,用一个手写字母扫描文档并为每个字母创建一个自己的图像。我将图像切割成字母的确切大小,调整字母大小,使每个字母具有相同的尺寸,并将它们放在白色背景上,使它们具有相同的尺寸,但原始比例保持不变。我已经把它工作得很好,唯一的问题是当我在图片中有一点点噪音时,它不起作用。我有图像(见附件)和图像的所有像素列表。什么是将图像切割到图像边界而不是噪声的好方法。
我用来剪切图片的代码:
def cut_to_edge(image, data, width, height):
left = width
right = 0
down = 0
up = height
for i in range(len(data)):
for j in range(len(data[i])):
if data[i][j] < 225:
if j < left:
left = j
if j > right:
right = j
if i < up:
up = i
if i > down:
down = i
letter = image.crop((left, up, right, down))
return letter
图像是图像(显然), data是每个像素的二维列表([[row1] [row2] etc.)), 宽度和高度是图像的尺寸
The image I need to cut, how it should look, How it looks now
答案 0 :(得分:0)
如果您的噪音像小点,您可以编写一个中值滤波器,这将解决您的问题。这个过滤器的主要思想是逐个像素地循环遍历图像,并用相邻像素的中值替换每个像素值。
但首先你需要确定你所拥有的噪音类型,然后应用正确的过滤器。