テンプレートマッチングによる画像検出のコードを以下のように書いてプログラムを回しましたがエラーが発生してしまいました.インデント等の確認は行いましたが問題なく,原因が分かりません.わかる方おりましたら回答お願い致します.
import sys
import cv2
import numpy as np
windowName_1=u'テンプレート'.encode('cp932')
windowName_2=u'相互相関係数分布'.encode('cp932')
windowName_3=u'検出結果'.encode('cp932')
windowName_4=u'抽出領域'.encode('cp932')
cv2.namedWindow(windowName_1)
cv2.namedWindow(windowName_2)
cv2.namedWindow(windowName_3)
cv2.namedWindow(windowName_4)
img_obj=cv2.imread('カット後.jpg',cv2.IMREAD_COLOR)
if img_obj is None:
print('画像無し')
sys.exit()
src=cv2.imread('カット前.jpg',cv2.IMREAD_COLOR)
if src is None:
print('元画像なし')
sys.exit()
height,width,channels=img_obj.shape
cv2.imshow(windowName_1,img_obj)
while True:
retval,frame=src.read
if frame is None: break img_ccoeff=cv2.matchTemplate(frame,img_obj,cv2.TM_CCOEFF_NORMED) cv2.normalize(img_ccoeff,img_ccoeff,0,1,cv2.NORM_MINMAX) cMin,cMax,pMin,pMax=cv2.minMaxLoc(img_ccoeff) detect=(pMax[0]+width/2,pMax[1]+height/2) img_crop=frame[pMax[1]:pMax[1]+height,pMax[0]:pMax[0]+width].copy() cv2.circle(frame,detect,width/2,(0,0.255),4) cv2.imshow(windowName_2,img_ccoeff) cv2.imshow(windowName_3,frame) cv2.imshow(windowName_4,img_crop) key=cv2.waitKey(33) if key ==27: break
cv2.destroyALLWindows()
src.release()
以下エラー文
SystemError: <built-in function namedWindow> returned NULL without setting an error
cv2.namedWindow(windowName_1)の行で発生しているようです.
回答1件
あなたの回答
tips
プレビュー