您需要将原始图像的裁剪保存到单独的文件中。如果没有看到您的代码,就无法确定如何存储作物,但您需要访问用于绘制绿色矩形的值。然后可以使用绘制绿色矩形的相同值通过切片图像来保存图像的裁剪。
如果您使用 opencv cv2.rectangle() 函数来绘制框,则意味着您拥有矩形的左上角和右下角。但是,numpy 切片的格式是:
crop_image = image[y:y+h, x:x+w]
因此,您必须计算高度和宽度值(即height = (xmax - xmin) + xmin 和宽度相同)。
再次,因为您没有代码显示我的猜测是您有一个绘制框的循环。如果在 cv2.rectange() 函数下面是这种情况,您可以编写:
crop_image = image[ymin: (ymax-ymin)+ymin, xmin: (max-min)+xmin]
cv2.imwrite('images/prediction_'+predicted_value+'_'+count+'.jpg', crop_image)
在你的代码中引用这个来获得 xmin/xmax/ymin/ymax 值:
cv2.rectange(img, (xmin, ymin), (xmax, ymax), (R, G, B), Thickness)
其中 image 是您对其进行预测的输入图像,predicted_value 是您对数字所做的预测,而 count 是基本计数,以确保您不会覆盖文件。您可以通过使用 for 循环中的 enumerate 函数来获得它:即for count, x in enumerate(data)
输出文件将保存到一个名为 images 的文件夹中(假设您之前已经创建了该文件夹),文件名如下:
prediction_3_0.jpg
prediction_4_1.jpg
prediction_2_2.jpg
prediction_3_3.jpg
prediction_5_4.jpg
这样,当您回读它们时,您就知道预测的数字是多少。如果我的任何假设有误,请告诉我,我可以编辑答案。