import glob
import cv2,os
#截图
def cut(img_path,img_id):
global img, img_name
img_name = img_id
img = cv2.imread(img_path)
img = cv2.resize(img, (3000, 1500))
cv2.namedWindow('image',0)
# cv2.resizeWindow('image', 1600, 1600)
cv2.setMouseCallback('image', on_mouse)
cv2.imshow('image', img)
cv2.waitKey(0)
def on_mouse(event, x, y, flags, param):
global img, point1, point2
img2 = img.copy()
if event == cv2.EVENT_LBUTTONDOWN: #左键点击
point1 = (x,y)
cv2.circle(img2, point1, 10, (0,255,0), 3)
cv2.imshow('image', img2)
elif event == cv2.EVENT_MOUSEMOVE and (flags & cv2.EVENT_FLAG_LBUTTON): #按住左键拖曳
cv2.rectangle(img2, point1, (x,y), (255,0,0), 3)
cv2.imshow('image', img2)
elif event == cv2.EVENT_LBUTTONUP: #左键释放
point2 = (x,y)
cv2.rectangle(img2, point1, point2, (0,0,255), 3)
cv2.imshow('image', img2)
min_x = min(point1[0],point2[0])
min_y = min(point1[1],point2[1])
width = abs(point1[0] - point2[0])
height = abs(point1[1] -point2[1])
cut_img = img[min_y:min_y+height, min_x:min_x+width]
cv2.imwrite("E:\\dataset\\PL_crack\\"+str(img_name), cut_img)
cv2.imshow('cut',cut_img)
img_paths = 'E:\\dataset\\PL_crack\\2\\*.jpg'
for img_path in glob.glob(img_paths):
img_id = os.path.basename(img_path)
# img_id = img_name.split('.')[0]
cut(img_path,img_id)
python通过鼠标点击进行图像截图,类似QQ截图
最新推荐文章于 2024-07-24 11:32:27 发布