使用Opencv去噪多个灰度文本图像[重复]
Posted
技术标签:
【中文标题】使用Opencv去噪多个灰度文本图像[重复]【英文标题】:Denoising multiple grayscaled text images using Opencv [duplicate] 【发布时间】:2020-06-09 18:17:22 【问题描述】:我正在尝试对文件夹中的多个灰度文本图像进行降噪。我已经将所有图像转换为灰度。我想要的只是在不更改文本的情况下从所有图像中去除噪点或模糊。为此,我使用 opencv 来消除模糊或噪音。我已经编写了如下所示的代码,当我运行代码时它没有显示任何错误并且什么都不显示。请帮我解决这个问题。我是图像处理方面的新手,这就是我感到困惑的原因。这是我的代码...
import numpy as np
from PIL import Image
import cv2
import glob
src_path = r"C:\Users\usama\Documents\FYP-Data\FYP Project Data\grayscale images\*.png" #images folder path
def get_string(src_path):
for filename in glob.glob(src_path):
img = cv2.imread(filename)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((1, 1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
cv2.imwrite(src_path + "filename", img)
【问题讨论】:
可能是你的目录名中的空格。你能关闭他们的名字再试一次吗?cv2.waitKey
丢失。如果您想在 OpenCV 窗口系统中显示图像,这一点非常重要。不这样做会挂起你的系统。
现在我的代码可以工作,但不能正常显示图像但它不能消除图像的噪点或模糊。请帮我解决问题...@rayryengspan>
这是一个新问题。请打开一个新的并实际显示示例图像。
【参考方案1】:
您应该缩小您加载的文件的范围。我更喜欢使用 glob 来执行此操作,它允许在搜索文件时使用简单的正则表达式模式。我希望您得到一个不是图像但仍在加载的文件,或者您缺少cv2.waitKey(0)
以退出视图。
import cv2
from glob import glob
files = glob('*.jpg')
for filename in glob('*.jpg'):
img = cv2.imread(filename)
bilateral_blur = cv2.bilateralFilter(img, 9, 75, 75)
cv2.imshow('denoised_images', bilateral_blur)
cv2.waitKey(0)
【讨论】:
我已经使用了上面的代码,但它只显示了第一个图像@Jakob Guldberg Aaes 你确定你的文件格式了吗? 当然,您必须确保使用正确的路径。这在包含 3 个文件的文件夹中对我有用。 是的。我使用了正确的路径。但仍然是同样的问题。这是我的代码import cv2 from glob import glob files = glob(r'C:\Users\usama\Documents\FYP-Data\FYP Project Data\grayscale images\*.png') for filename in glob(r'C:\Users\usama\Documents\FYP-Data\FYP Project Data\grayscale images\*.png'): #print(filename) img=cv2.imread( filename) bilateral_blur=cv2.bilateralFilter(img, 9, 75, 75) cv2.imshow('denoised_images', bilateral_blur) cv2.waitKey(0)
...@Jakob Guldberg Aaes
您必须按任意键才能显示下一个。代码阻塞,直到按键被按下。以上是关于使用Opencv去噪多个灰度文本图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章