python和opencv 2 imwrite
我一直在尝试使用本“教程”学习使用python的opencv库: 在其他教程中,我可以让它工作得很好,但在这里,通过平滑/模糊图像,我无法找到“打印”输出的方法 所谓打印,我指的是将修改后的文件(代码中建议使用另一个名称)保存在磁盘中python和opencv 2 imwrite,python,opencv,io,Python,Opencv,Io,我一直在尝试使用本“教程”学习使用python的opencv库: 在其他教程中,我可以让它工作得很好,但在这里,通过平滑/模糊图像,我无法找到“打印”输出的方法 所谓打印,我指的是将修改后的文件(代码中建议使用另一个名称)保存在磁盘中 #!/usr/bin/env python import cv2 #import sys # sys.exit() [used for argparse exit] import numpy as np #import
#!/usr/bin/env python
import cv2
#import sys # sys.exit() [used for argparse exit]
import numpy as np
#import argparse # not used here, because it's not really the problem
#import os # to validate the image path with argparse
def hist_eq(imagem, name):
cv2.imwrite("hist_eq" + name, cv2.equalizeHist(imagem))
def media(imagem, name, tam):
mascara = np.ones((tam, tam), np.float32) / (tam ^ 2)
img = cv2.filter2D(imagem, -1, mascara)
cv2.imwrite("filtro_media_" + name, img)
def mediana(imagem, name, tam):
imagem = cv2.medianBlur(imagem, tam)
cv2.imwrite("filtro_mediana_" + name, imagem)
def gaussiano(imagem, name, tam):
teste = cv2.GaussianBlur(imagem, (tam, tam), 0)
cv2.imwrite("filtro_gaussiano_" + name, teste)
if __name__ == '__main__':
nome = str(sys.argv[1])
imagem = cv2.imread(nome)
gs_imagem = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
gaussiano(gs_imagem, nome, 11)
media(gs_imagem, nome, 11)
mediana(gs_imagem, nome, 11)
hist_eq(gs_imagem, nome)
PS:最让我头疼的是没有任何错误消息,我的意思是imwrite至少可以打印一个错误并告诉它为什么不工作。您是否也在name变量中传递扩展名?您得到的错误是什么?正如@slider所说,在你阅读了它们之后,试着用
print imagem
和print gs_imagem
。你上面的评论说你使用了cv2.imwrite
而不是print
。@slider的要点是,当您发出cv2.imread
时,如果读取数据时出现问题,返回的值可能与您认为的不一样。如果您只是打印imagem
,它应该告诉您它是否是有效的图像对象。