import numpy as np from math import * import sys import os import glob import argparse import cv2 as cv import kerasimport randomfrom matplotlib import pyplot as pltdef onmouse(event, x, y, flags, param): global drag_start, sel, lab, sets, count if event == cv.EVENT_LBUTTONDOWN: drag_start = x, y sel = 0,0,0,0 sam=0,0,0,0 if count==100: lab+=1 if count==200: lab+=1 if count>=300: print('over all') count+=1 elif event == cv.EVENT_LBUTTONUP: if sel[2] > sel[0] and sel[3] > sel[1]: mid=int((sel[1]+sel[3])/2),int((sel[0]+sel[2])/2) sam=mid[0]-14,mid[1]-14,mid[0]+14,mid[1]+14 patch = gray[sam[0]:sam[2],sam[1]:sam[3]] target = cv.cvtColor(patch, cv.COLOR_GRAY2BGR) sets.append([target,lab]) print(target.shape,sam,count,lab,sam[0],sam[1],sam[2],sam[3]) np.save('cloud',sets) drag_start = None elif drag_start: if flags & cv.EVENT_FLAG_LBUTTON: minpos = min(drag_start[0], x), min(drag_start[1], y) maxpos = max(drag_start[0], x), max(drag_start[1], y) sel = minpos[0], minpos[1], maxpos[0], maxpos[1] img = cv.cvtColor(gray, cv.COLOR_GRAY2BGR) cv.rectangle(img, (sel[0], sel[1]), (sel[2], sel[3]), (0,255,255), 1) cv.imshow("gray", img) else: print ("selection is complete" ) drag_start = None drag_start = Nonesel = (0,0,0,0)lab=0sets=[] count=0filename = 'up.jpg' cv.namedWindow("gray",1) cv.setMouseCallback("gray", onmouse) ext = os.path.splitext(filename)[1][1:] if ext == "png" or ext == "jpg" or ext == "bmp" or ext == "tiff" or ext == "pbm": print (filename ) img=cv.imread(filename,1) sel = (0,0,0,0) drag_start = None gray=cv.cvtColor(img, cv.COLOR_BGR2GRAY) cv.imshow("gray",gray) cv.waitKey(0)cv.destroyAllWindows()