私は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です。
何か案が ??
問題を解決しました。Google画像検索からランダムに取得した画像が読み込まれません。多分それは暗号化されているか、私が知らない何かです。他の画像で試してみましたが、とてもうまくいきました。したがって、画像をコピーするときは注意してください:)
最良の選択はpyopencvです:
import pyopencv as cv
img = cv.imread('01.png')
cv.imshow('img-windows',img)
cv.waitKey(0)
cv.imwrite('01.png',img)
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カメラ、画像ファイルで動作します。