AssertionError: Различные размеры изображений, ошибка при разделении изображения - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь вычислить асимметрию области интереса изображения. Я получил центр, и я смог разделить изображение в соответствии с областью интересов. Однако при использовании разделенных изображений для сравнения асимметрии между ними я получаю следующую ошибку.

Код:

import cv2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText
from PIL import Image
IMD = 'IMD036'
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))

x, y = center
print(x)
img1 = thresh[:, :x]
img2 = thresh[:, x:]

cv2.imwrite('face1.png', img1
cv2.imwrite('face2.png', img2)

i1 = Image.open("face1.png")
i2 = Image.open("face2.png")
assert i1.mode == i2.mode, "Different kinds of images."
assert i1.size == i2.size, "Different sizes."

pairs = zip(i1.getdata(), i2.getdata())
if len(i1.getbands()) == 1:
    # for gray-scale jpegs
    dif = sum(abs(p1-p2) for p1,p2 in pairs)
else:
    dif = sum(abs(c1-c2) for p1,p2 in pairs for c1,c2 in zip(p1,p2))

ncomponents = i1.size[0] * i1.size[1] * 3
print ("Difference (percentage):"+ str((dif / 255.0 * 100) / ncomponents))

Ошибка выхода:

AssertionError: Different sizes.

Выход изображения разделены: 324x575 Размер: 68,7 КБ

enter image description here

439x575 Размер: 68,9 КБ

enter image description here

i1.mode = L i2.mode = L
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...