Cara menggunakan NP.ARCTAN2 pada Python

Operasi morfologi yang banyak digunakan untuk binary yaitu edge detection. Ada banyak jenis-jenis edge detection yaitu sobel, prewit, robert, dan canny yang dibedakan atas jenis kernelnya. Pada postingan yang akan dibahas ini yaitu sobel. Kenapa Dibahas? walaupun sudah banyak membahas dokumentasinya juga! dikarenakan untuk memperjelas penggunaan deteksi sobel yang di dokumentasi opencv terdiri dari arah sumbu X dan sumb Y serta ada penggunaan library skimage [scikit image]

Edge Detection menggunakan operator Sobel bisa dilakukan dengan teknik menggabungkan  gradient, lebih lanjut kamu bisa ulasan berikut ini agar kamu lebih mengerti edge detection Sobel. Sebagai bahan percobaan bahwa gambar input yang digunakan berformat grayscale bukan hitam putih seperti diatas postingan ini, maka agar dibaca grayscale oleh OpenCV, cukup berikan flag=0

test_image = cv2.imread['bunga.jpg',0]

maka test_image akan berformat uint8 yang berarti unsigned integer alias bilangan bulat positif [tidak mengandung koma] dengan nilai rentang

atau dari 0 sampai dengan 255.

OpenCV – Operator Sobel

Edge detection / Deteksi tepi operator sobel pada OpenCV  menggunakan function berikut

cv2.Sobel[original_image,ddepth,xorder,yorder,kernelsize]

Sehingga ada 2 arah yaitu

dan

import cv2
import numpy as np
from matplotlib import pyplot as plt


test_image = cv2.imread['bunga.jpg',0] #gambar dibaca grayscale

#cv2.Sobel[original_image,ddepth,xorder,yorder,kernelsize]
#tanda cv2.CV_64F adalah format grayscale 64 bit [true color]
#sedangkan cv2.CV_8U adalah format binary atau 8 bit [hitam putih]
sobelx = cv2.Sobel[test_image,cv2.CV_64F,1,0,ksize=3]
sobely = cv2.Sobel[test_image,cv2.CV_64F,0,1,ksize=3]

plt.figure[]
plt.subplot[1,2,1],plt.imshow[sobelx,cmap='gray'],plt.title['Penerapan Sobel X']
plt.subplot[1,2,2],plt.imshow[sobely,cmap='gray'],plt.title['Penerapan Sobel Y']

Agar didapatkan egde, maka perlu kita terapkan rumus berikut

   

   

Dengan G disebut gradient dan theta disebut dengan orientation. Sehingga kode lengkap untuk rumus diatas bila diterapkan menjadi berikut

import cv2
import numpy as np
from matplotlib import pyplot as plt


test_image = cv2.imread['bunga.jpg',0] #gambar dibaca grayscale

#cv2.Sobel[original_image,ddepth,xorder,yorder,kernelsize]
#tanda cv2.CV_64F adalah format grayscale 64 bit [true color]
#sedangkan cv2.CV_8U adalah format binary atau 8 bit [hitam putih]
sobelx = cv2.Sobel[test_image,cv2.CV_64F,1,0,ksize=3]
sobely = cv2.Sobel[test_image,cv2.CV_64F,0,1,ksize=3]

plt.figure[]
plt.subplot[1,2,1],plt.imshow[sobelx,cmap='gray'],plt.title['Penerapan Sobel X']
plt.subplot[1,2,2],plt.imshow[sobely,cmap='gray'],plt.title['Penerapan Sobel Y']



G = np.sqrt[sobely**2+sobelx**2]
theta = np.arctan2[sobely, sobelx]

plt.figure[]
plt.imshow[np.uint8[G],cmap='gray']
plt.title['Penerapan Sobel ']

Scikit Image Operator Sobel

Kalau kamu tidak ingin ribet, bisa menggunakan scikit-image atau disingkat dengan skimage, kodenya sangat simple sekali hanya meggunakan function sobel

import cv2
import numpy as np
from matplotlib import pyplot as plt
from skimage.filters import  sobel

test_image = cv2.imread['bunga.jpg',0] #gambar dibaca grayscale


edge_sobel = sobel[test_image]

plt.figure[]
plt.imshow[edge_sobel,cmap='gray']
plt.title['Penerapan Sobel skimage ']

Perbedaan hasil dikarenakan perbedaan jenis kernel yang digunakan, bila ingin menggunakan jenis kernel yang lain, bisa menggunakan teknik convolution

Kemudian buka menu Run->Run… atau tekan tombol
Help on built-in function pow in module math:

pow[...]
    pow[x, y]

    Return x**y [x to the power of y].
[END]
5+
Help on built-in function pow in module math:

pow[...]
    pow[x, y]

    Return x**y [x to the power of y].
[END]
6+
Help on built-in function pow in module math:

pow[...]
    pow[x, y]

    Return x**y [x to the power of y].
[END]
7. Kalau muncul pilihan, pilih saja
Help on built-in function pow in module math:

pow[...]
    pow[x, y]

    Return x**y [x to the power of y].
[END]
4.

Bài mới nhất

Chủ Đề