import cv2 import numpy as np SOURCE_IMAGE='../lisbon1.jpg' OUTPUT_IMAGE='shiTomasi_lisbon1.jpg' ## kép beolvasása img = cv2.imread(SOURCE_IMAGE); ## a képet szürkeárnyalatossá konvertáljuk gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ## sarokpontok keresése Shi-Tomasi sarokdetektorral ## a detektor a sarokpontok koordinátáit adja meg ## - meg kell adnunk az alábbi paramétereket: maxCorners = 0 # ha nulla számot adunk meg, akkor nincs korlátozás a pontok számát illetően qualityLevel = 0.5 # hány százalékát tartsa meg a pontoknak (a legerősebbek maradnak meg) blockSize = 3 # az ablakméret a sajátérték és sajátvektor számításhoz minDistance = 10 # legalább ennyi legyen a detektált pontok Euklideszi távolsága k = 0.004 # a Harris sarokdetektor paramétere (lásd a képletet a leírásban) #gray_img = np.float32(gray_img) corners = cv2.goodFeaturesToTrack(gray_img, maxCorners, qualityLevel, minDistance) # az utolsó néhány paraméter alapértelmezett corners = np.int0(corners); out_img = img for i in corners: x,y = i.ravel() # numpy függvény cv2.circle(out_img, (x,y), 10, 255, 3) cv2.imwrite(OUTPUT_IMAGE, out_img)