Merging Binary Object
2,213 Views
Sinopsis
Pengolahan citra digital untuk pada operasi morflogi sangat dibutuhkan sebagai alat bantu pengenalan sebuah pola, misalkan pada mesin OCR (optical character recognition) terutama untuk mengenal karakater/simbol huruf kecil/ huruf kanji/ ataupun huruf dengan simbol yang secara umum 1 huruf terdiri dari 1 objek, misalkan saja huruf kanji/huruf arab yang setiap hurufnya terkadang dibuat beberapa simbol. Operasi ini melibatkan operasi blob, kalian bisa baca link berikut http://www.softscients.web.id/2016/09/mengenal-contour-retrieval-mode.html. Berikut gambar yang akan digunakan yang merupakan sebuah simbol yang utuh, bila kalian perhatikan ada 2 objek yang tidak saling terhubung. Bila kalian menggunakan operasi Blob, maka akan ada 2 objek yang dikenali (bukan 1 objek)
Bila dibuat negasi image nya, akan tampil seperti berikut
Kalian bisa melihat akan terdeteksi menjadi satu objek secara utuh.
Kalian bisa menggunakan kode seperti berikut:
import cv2
import numpy as np
from matplotlib import pyplot as plt
plt.close('all')
img = cv2.imread('D:/5. Project/python-intersection/gambar.png', cv2.IMREAD_GRAYSCALE);
img2 = img.copy()
img3 = img.copy()
cv2.bitwise_not(img,img2)
cv2.bitwise_not(img,img3)
plt.figure()
plt.imshow(img2,cmap='gray')
font = cv2.FONT_HERSHEY_SIMPLEX
ret,thresh = cv2.threshold(img2,127,255,0)
image, contours, _ = cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
##################################
#DIGABUNGKAN VIA RECTANGLE
##################################
for contour in contours:
[x,y,w,h] = cv2.boundingRect(contour)
if w > 10 and h>10:
cv2.rectangle(img2,(x,y),(x+w,y+h),(255,255,0),2)
plt.figure()
plt.imshow(img2,cmap='gray')
##################################
#HASIL AKHIR
##################################
image, contours, _ = cv2.findContours(img2,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
[x,y,w,h] = cv2.boundingRect(contour)
if w > 10 and h>10:
cv2.rectangle(img3,(x,y),(x+w,y+h),(255,255,0),2)
plt.figure()
plt.imshow(img3,cmap='gray')
plt.show()
ref:






Post Comment
You must be logged in to post a comment.