以下のコードで画像二枚からテンプレートマッチングを行い,もっとも相互相関係数が高い部分を赤丸で囲むプログラムを作成しています. cv2.circleの部分でエラーが発生しております(エラー内容は一番下に明記).このエラーの解消方法をご存じの方おりましたら解決法を教えていただきたいです.
import sys
import cv2
import numpy as np
windowName_1='temp'
windowName_2='sokan'
windowName_3='result'
windowName_4='area'
cv2.namedWindow(windowName_1)
cv2.namedWindow(windowName_2)
cv2.namedWindow(windowName_3)
cv2.namedWindow(windowName_4)
img_obj=cv2.imread('after.jpg',cv2.IMREAD_COLOR)
if img_obj is None:
print('No picture')
sys.exit()
frame=cv2.imread('before.jpg',cv2.IMREAD_COLOR)
if frame is None:
print('No picture')
sys.exit()
height,width,channels=img_obj.shape
cv2.imshow(windowName_1,img_obj)
while True:
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()
frame.release()
以下エラー内容と試したこと
cv2.circle(frame,detect,width/2,(0,0,255),4)の文において
TypeError: integer argument expected, got floatと表示される.
整数演算にすれば治るかと思い/を//に変更して回してみたが同様のエラーが表示されます.