Я работаю над извлечением характеристик изображения, в котором я пытаюсь определить, является ли определенное изображение симметричным или нет. Я использую opecv - python для разработки этой работы.
Код ниже используется для определения центра и диаметра интересующей области. Как узнать, симметрично ли это изображение или нет?
import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText
IMG = '015'
thresh = cv2.imread(IMD+'.png',0)
_, contours,hierarchy = cv2.findContours(thresh,2,1)
print (len(contours))
cnt = contours
for i in range (len(cnt)):
(x,y),radius = cv2.minEnclosingCircle(cnt[i])
center = (int(x),int(y))
radius = int(radius)
cv2.circle(thresh,center,radius,(0,255,0),2)
print ('Circle: ' + str(i) + ' - Center: ' + str(center) + ' - Radius: ' + str(radius))
plt.text(x-21, y+15, '+', fontsize=25, color = 'red')
plt.text(10, -10, 'Centro: '+str(center), fontsize=11, color = 'red')
plt.text(340, -10, 'Diametro: '+str((radius*2)/100)+'mm', fontsize=11, color = 'red')
plt.Circle((10, -10), 7.2, color='blue')
plt.imshow(thresh, cmap='gray')
#plt.savefig(IMG+'-diam.png')
plt.show()
Выход:
![enter image description here](https://i.stack.imgur.com/PlQ2F.png)
В данном случае я хочу классифицировать, является ли пятно, которое я анализирую, симметричным или нет, на изображении ниже визуально отмечено, что оно не симметрично, в то время как первое изображение на приведенном выше графике симметрично.
![enter image description here](https://i.stack.imgur.com/0tyq7.png)