1,466 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: