openCV中的cv.SaveImage

iva*_*123 12 python opencv

我正在尝试学习如何在python中使用opencv并遇到一些困难,而且我也是python的新手.

这是我的问题:

我想转换jpg文件tp png.简单明了.但是当我运行这段代码时:

from opencv import _cv

from opencv.highgui import cvSaveImage, cvLoadImage


cvSaveImage("bet.jpg",cvLoadImage("bet.jpg")) 



if __name__ == '__main__':
    pass
Run Code Online (Sandbox Code Playgroud)

它给出了我不明白的错误:

Traceback (most recent call last):
  File "convert.py", line 6, in <module>
    cvSaveImage("bet.jpg",cvLoadImage("bet.jpg")) 
  File "/usr/lib/pymodules/python2.6/opencv/highgui.py", line 183, in cvSaveImage
    return _highgui.cvSaveImage(*args)
RuntimeError:  openCV Error:
        Status=Null pointer
        function name=cvGetMat
        error message=NULL array pointer is passed
        file_name=cxarray.cpp
        line=2780
Run Code Online (Sandbox Code Playgroud)

我的图片有相同的源代码文件夹,图片名称是bet.jpg

任何的想法 ??

小智 21

最好的选择是pyopencv:

import pyopencv as cv

img = cv.imread('01.png')

cv.imshow('img-windows',img)
cv.waitKey(0)
cv.imwrite('01.png',img)
Run Code Online (Sandbox Code Playgroud)


Kel*_*mby 12

Python CV文档中,将jpeg转换为png的CV2方法是: Python: cv2.imwrite(filename, img[, params]) ? retval

我的例子:`

import cv2
filename = 'pic.jpeg'
cam = cv2.VideoCapture(filename)
s, img = cam.read()
picName = 'pic.png'
cv2.imwrite(picName, img)`
Run Code Online (Sandbox Code Playgroud)

VideoCapture非常好用,适用于视频,网络摄像头和图像文件.


iva*_*123 3

我解决了这个问题,我从谷歌图片中随机获取的图像无法加载。也许它被加密了或者我不知道的东西。我用其他图像尝试过,效果很好。所以复制图像时要小心:)