python中出现的问题

error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\templmatch.cpp:588: error: (-215:Assertion failed) corr.rows <= img.rows + templ.rows - 1 && corr.cols <= img.cols + templ.cols - 1 in function 'cv::crossCorr'

[ WARN:0@301.684] global loadsave.cpp:244 cv::findDecoder imread_('fibrous_root_template.jpg'): can't open/read file: check file path/integrity
下面是代码:

import cv2
import numpy as np

# 定义图像路径
img_path = 'D:/biyesheji/quexianhuluoboshujuji/fibrous_root/1.jpg'

# 读取图像并转换为灰度图像
img = cv2.imread(img_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 对图像进行滤波和二值化处理
blur = cv2.GaussianBlur(gray, (5, 5), 0)
thresh = cv2.threshold(blur, 120, 255, cv2.THRESH_BINARY)[1]

# 定义模板匹配目标区域
template_area = (250, 200, 300, 100)

# 定义模板匹配模板图像路径
template_path = 'fibrous_root_template.jpg'

# 读取模板图像并转换为灰度图像
template = cv2.imread(template_path, 0)

# 在原图像中寻找模板匹配目标区域
roi = thresh[template_area[1]:template_area[1]+template_area[3], template_area[0]:template_area[0]+template_area[2]]
res = cv2.matchTemplate(roi, template, cv2.TM_CCOEFF_NORMED)
loc = np.where(res >= 0.7)
for pt in zip(*loc[::-1]):
    cv2.rectangle(img, (pt[0]+template_area[0], pt[1]+template_area[1]), (pt[0]+template_area[0]+template.shape[1], pt[1]+template_area[1]+template.shape[0]), (255, 0, 0), 2)

# 显示结果
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

can't open/read file: check file path/integrity很明显提示找不到图片文件,19行的代码改成图片的绝对路径试试

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^