pythonで画像処理をしています。
USBカメラで動画を表示して、バーコード読取を行い、
検出されたバーコードの位置を基準にして、
OCRをしたいと思ってます。
プログラムの中で、グレースケール変換するところがありますが、
下記のエラーが発生してしまいます。
グレースケール変換エラーが発生する理由を
わかる方、教えて頂けますでしょうか?
宜しくお願い致します。
error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
python
1 2import cv2 3import numpy as np 4from pyzbar.pyzbar import decode 5from PIL import Image 6import sys 7import pyocr 8import pyocr.builders 9 10def readBarcord(): 11 data = decode(img) 12 if len(data) > 0: 13 for i,bacord in enumerate(data): 14 top_x,top_y,bottom_x,bottom_y = data[i][2][0],data[i][2][1],data[i][2][0] + data[i][2][2],data[i][2][1] + data[i][2][3] 15 ocr_top_x,ocr_top_y,ocr_bottom_x,ocr_bottom_y = top_x ,top_y + 75,bottom_x,bottom_y + 28 16 bacord1_text = data[i][0].decode('utf-8','ignore') 17 cv2.rectangle(img,(top_x,top_y),(bottom_x,bottom_y),(0,255,0),1) 18 cv2.rectangle(img,(ocr_top_x,ocr_top_y),(ocr_bottom_x,ocr_bottom_y),(255,0,0),1) 19 font = cv2.FONT_HERSHEY_PLAIN 20 cv2.putText(img,bacord1_text,(top_x+12,top_y+50),font,2.5,(0,0,255)) 21 22 23 """文字認識追加""" 24 25 tools = pyocr.get_available_tools() 26 if len(tools) > 0: 27 tool = tools[0] 28 langs = tool.get_available_languages() 29 lang = langs[0] 30 img_roi = img[ocr_top_y:ocr_bottom_y,ocr_top_x:ocr_bottom_x] 31 32 img_g = cv2.cvtColor(img_roi,cv2.COLOR_BGR2GRAY) 33 read_ocr = tool.image_to_string(Image.fromarray(img_g),lang="eng", 34 builder = pyocr.builders.TextBuilder(tesseract_layout=6)) 35 cv2.putText(img,read_ocr,(top_x+12,top_y+150),font,2.5,(255,255,255)) 36 37 38cap = cv2.VideoCapture(1) 39while(True): 40 _,img = cap.read() 41 readBarcord() 42 cv2.imshow("img",img) 43 if cv2.waitKey(1) == 27: 44 break 45 46cap.release() 47cv2.destroyAllWindows()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。