web-dev-qa-db-ja.com

openCVのcv.SaveImage

私はpythonでopencvを使用する方法を学ぼうとしていて、いくつかの問題を抱えています。また、私はpythonでも初心者です。

これが私の質問です:

Jpgファイルをpngに変換したい。シンプルで明確。しかし、私がこのコードを実行すると:

from opencv import _cv    
from opencv.highgui import cvSaveImage, cvLoadImage

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

if __name__ == '__main__':
    pass

それは私が理解していないこのエラーを与えます:

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

ソースコードの同じフォルダにある写真があり、画像の名前はbet.jpgです。

何か案が ??

14
iva123

問題を解決しました。Google画像検索からランダムに取得した画像が読み込まれません。多分それは暗号化されているか、私が知らない何かです。他の画像で試してみましたが、とてもうまくいきました。したがって、画像をコピーするときは注意してください:)

3
iva123

最良の選択はpyopencvです:

import pyopencv as cv

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

cv.imshow('img-windows',img)
cv.waitKey(0)
cv.imwrite('01.png',img)
21
rosickey

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)`

VideoCaptureは素晴らしく一般的で、ビデオ、Webカメラ、画像ファイルで動作します。

12
Kelton.Temby