python - 它似乎不保存裁剪的图像
问题描述
我是python的新手。
目前我正在努力解决 cv2 问题。
代码是
import cv2, os, glob
import numpy as np
min_dist = 30
min_r = 15
max_r = 27
hough_ksize = 2.0
w,h = 60,60
#traindata_path = os.path.join(os.getcwd(), "images\\cropped\\testdata")
traindata_path = os.path.join(os.getcwd(), "images\\cropped\\traindata")
os.chdir("images/screenshots")
images = glob.glob("*.png")
numberofphotos = int((open("../cropped/labeldata.txt", "r").read()))
print(numberofphotos)
total = 0
last_img_name = None
img_path = None
for _img in images:
print(_img)
img = cv2.imread(_img, cv2.IMREAD_GRAYSCALE)
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, hough_ksize, min_dist, minRadius=min_r,
maxRadius=max_r)
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
cropped = img[max(0,int(y-h/2)):int(y+h/2), max(0,int(x-w/2)):int(x+w/2)]
cv2.imshow("", cropped)
dt = cv2.waitKeyEx(0)
if dt == 2490368:
cv2.imwrite(os.path.join(traindata_path, "up", "%d.png"%(numberofphotos+total+1)), cropped)
print(os.path.join(traindata_path, "up", "%d.png"%(numberofphotos+total+1)))
total += 1
img_path = "up"
elif dt == 2621440:
cv2.imwrite(os.path.join(traindata_path, "down", "%d.png" % (numberofphotos + total + 1)), cropped)
print(os.path.join(traindata_path, "down", "%d.png"%(numberofphotos+total+1)))
total += 1
img_path = "down"
elif dt == 2424832:
cv2.imwrite(os.path.join(traindata_path, "left", "%d.png" % (numberofphotos + total + 1)), cropped)
print(os.path.join(traindata_path, "left", "%d.png"%(numberofphotos+total+1)))
total += 1
img_path = "left"
elif dt == 2555904:
cv2.imwrite(os.path.join(traindata_path, "right", "%d.png" % (numberofphotos + total + 1)), cropped)
print(os.path.join(traindata_path, "right", "%d.png"%(numberofphotos+total+1)))
total += 1
img_path = "right"
else:
pass
with open("../cropped/labeldata.txt", "w") as b:
b.write(str(numberofphotos+total))
print("added %d new images"%(total))
它工作正常。
但它不会将裁剪后的图像保存在裁剪/训练数据中。
我想将裁剪后的图像保存到上、下、右、左文件夹中。
我该怎么办。
解决方案
推荐阅读
- python - centos 7机器中的python 3.6.7 UnicodeEncodingError
- amazon-web-services - 在 AWS Step Functions 中跨循环传递数据
- kubernetes - 在工作节点和控制平面之间引入代理后,Kubernetes 工作节点处于 NotReady 状态
- webhooks - 如何将函数应用与 SharePoint webhook 一起使用?
- angular - ng2-completer 选择事件未在鼠标单击时触发
- drools - 如何遍历drools决策表中的对象列表?
- ios - 使用 PaypalSDK iOS 导航颜色在 iOS 中未更改
- python - 套接字IO。在命名空间上不起作用
- jboss - JBoss 7.2 的 JMS 服务器问题
- reactjs - 如何将数据附加到现有的 json