Как объединить или вставить обнаруженные подключенные компоненты один за другим? - PullRequest
0 голосов
/ 08 января 2020

Я хочу создать изображение 256 * 256, используя подключенные компоненты, извлеченные из текстового изображения. идея состоит в том, чтобы объединять, отображать или вставлять CC рядом (случайным образом) до получения изображения 256 * 256, что означает sum_height_CC = 256 и sum_widh_CC = 256. представлен код для обнаружения CC

def process(gray_img):

        gauss_img = cv2.GaussianBlur(gray_img,(5,5),0)  

        kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))

        th4 = cv2.morphologyEx(gauss_img, cv2.MORPH_GRADIENT, kernel)
        ret3,th3 = cv2.threshold(th4,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
        morph_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (8, 8))
        connected = cv2.morphologyEx(th3, cv2.MORPH_CLOSE, morph_kernel)
        output = cv2.connectedComponentsWithStats(connected, connectivity=8)
        for i in range(output[0]):
            if output[2][i][4] >= 300 and output[2][i][4] <= 10000:
                CC=cv2.rectangle(th3, (output[2][i][0], output[2][i][1]), (output[2][i][0] + output[2][i][2], output[2][i][1] + output[2][i][3]), (255, 255, 255), 2)

#♣======================== get all the detected CC as images ======================================

#                res = gray_img[output[2][i][1]:output[2][i][1] + output[2][i][3], output[2][i][0]:output[2][i][0] + output[2][i][2]]
#                cv2.imwrite(r"component%s.jpg" %str(i), res)

#♣===================================== show results ==============================================     
        cv2.imshow("detection", CC)
        cv2.imshow("original", gray_img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()

Спасибо за помощь.

...