前提・実現したいこと
フォルダ内にある画像のRGB値を順に出して,該当するcsvファイルに追記することを目的にしています.画像名は1,2,3,4と数字を割り振っています.python3.8の対話モードで行っています.
発生している問題・エラーメッセージ
以下のようなエラーメッセージが何度も出てしまいます.
Traceback (most recent call last):
File "<stdin>", line 6, in <module>
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4045: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
該当のソースコード
言語名
python
コード全文
import cv2 #OpenCVのインポート
import os
import csv
import numpy as np
stage=r'C:\Users\Rmode\Documents\PythonScripts'
for i in range(1,60): #これ以降はindentを入れています
photoname = str(i)+'.jpg'
stages = stage + photoname
img = cv2.imread(stages)
img_resize = cv2.resize(img,dsize=(639, 478))
sx = 287
sy = 223
gx = 370
gy = 327
boxFromX = sx
boxFromY = sy
boxToX = gx
boxToY = gy
imgBox = img_resize[boxFromY: boxToY, boxFromX: boxToX]
ba = imgBox.T[0].flatten().mean()
ga = imgBox.T[1].flatten().mean()
ra = imgBox.T[2].flatten().mean()
print("B: %.2f" % (ba))
print("G: %.2f" % (ga))
print("R: %.2f" % (ra))
bsd = np.std(imgBox.T[0].flatten())
gsd = np.std(imgBox.T[1].flatten())
rsd = np.std(imgBox.T[2].flatten())
print("B: %.2f" % (bsd))
print("G: %.2f" % (gsd))
print("R: %.2f" % (rsd))
f = open(r"C:\Users\Rmode\Desktop\RGBkeisoku\forth.csv", 'a')
writer = csv.writer(f, lineterminator='\n')
csvlist = []
csvlist.append([ba,ga,ra,'', bsd,gsd,rsd])
writer.writerows(csvlist)
f.close()
試したこと
画像の読み込みが上手くいってないことはわかったのですが、画像ファイルはすべて「.jpg」であり、何が良くないかがわかりません.
補足情報(FW/ツールのバージョンなど)
img_resize = cv2.resize(img,dsize=(639, 478))
この部分がよくないように思います
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 09:38