cv2.rectangle不做任何事情

问题描述

我有一个看起来像这样的python脚本:

import cv2

if __name__ == "__main__":
    predict_filename = "prediction.jpg"
    predict_cv2 = cv2.imread(prediction_filename)
    
    cv2.rectangle(predict_cv2,(50,50),(100,100),(225,225),6)
    print("changing ",predict_filename," done")

我稍后试图绘制框以显示对象检测结果,但到目前为止,我一直在努力将框绘制到图片上。 prediction.jpg与脚本位于同一文件中,但是在运行代码时将保持不变。我的错误在哪里?

解决方法

您正在predict_cv2的numpy数组上绘制矩形,如果要保存此图像,则需要使用命令cv2.imwrite(“ file name”,要保存的数组)

import cv2

if __name__ == "__main__":
    predict_filename = "prediction.jpg"
    predict_cv2 = cv2.imread(prediction_filename)
    
    cv2.rectangle(predict_cv2,(50,50),(100,100),(225,225),6)
    cv2.imwrite("ImageWithRectangle.jpg",predict_cv2)
    print("changing ",predict_filename," done")

这应该将带有矩形的图像保存在项目文件夹中。

,

您需要做的就是在绘制矩形命令之前使用cv2.imwrite语句获得所需的结果。

cv2.imwrite("File_name.jpg",predict_cv2)