質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

625閲覧

python opencvで動画からOCR時にグレースケール変換エラー

soepu

総合スコア41

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/06/05 20:08

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すいません。解決できました。
img_roiのところで、shapeを確認したら、0 になっている瞬間があり、
条件文をついかして解決しました。

投稿2019/06/05 20:26

soepu

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問