У меня много изображений в папке, и я пытаюсь определить второй по величине контур в каждом изображении в папке, а также площадь и радиус этого контура.Это код, который я написал, но я получаю радиус только для последнего изображения.Однако, когда я распечатываю длину контура, я получаю длину контуров для каждого изображения в папке.Может кто-нибудь подсказать, пожалуйста, как получить весь радиус обнаруженных контуров во всех изображениях в папке, а также как отобразить каждое изображение.
# looping and reading all images in the folder
for fn in glob.glob('E:\mf150414\*.tif'):
im = cv2.imread(fn)
blur = cv2.GaussianBlur(im,(5,5),cv2.BORDER_DEFAULT)
img = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
_, contours,_ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
second_largest_cnt = sorted(contours, key = cv2.contourArea, reverse = True)[1:2]
cv2.drawContours(img,second_largest_cnt,-1,(255,255,255),-1)
# detecting the area of the second largest contour
for i in second_largest_cnt:
area = cv2.contourArea(i)*0.264583333 # Area of the detected contour (circle)
equi_radius = np.sqrt(area/np.pi) # radius of the contour