Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python和opencv 2 imwrite_Python_Opencv_Io - Fatal编程技术网

python和opencv 2 imwrite

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

我一直在尝试使用本“教程”学习使用python的opencv库:

在其他教程中,我可以让它工作得很好,但在这里,通过平滑/模糊图像,我无法找到“打印”输出的方法

所谓打印,我指的是将修改后的文件(代码中建议使用另一个名称)保存在磁盘中

#!/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
,它应该告诉您它是否是有效的图像对象。