“Thresholding dengan OpenCV” Kode Jawaban

Thresholding sederhana dengan opencv

import cv2
from matplotlib import pyplot as plt
'''Read your image and convert it to graycale as follows:'''
img = cv2.imread("myimage.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
'''Apply a Low-pass filter such as guassian blur to reduce high frequency
components as follows:'''
img_blur = cv2.GaussianBlur(gray, (3,3), 0) 
'''The (3,3) is filter size (must be odd) and zero is the standard
deviation parameter of a guassian function which tells GaussianBlur to
calculate standard diviation automatically. Assuming myimage.jpg is of a
bi-modal distribution (its histogram plot contains two peaks) then 
threshold is applied as follows:'''
threshdimage = cv2.threshold(img_blur,100,255,cv2.THRESH_BINARY)[1]
plt.imshow(threshdimage, cmap = 'gray', interpolation = 'bicubic')# plot  
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
'''Where 100 is threshold that divides the pixel space , hence all pixel
values smaller than 100 are set to 0 and all above 100 are set to 255.
The THRESH_BINARY specifies method used for thresholding. See the 
following: https://docs.opencv.org/4.x/d7/d4d/tutorial_py_thresholding.html
for more info'''
plt.show()
Coderunner

Thresholding dengan OpenCV

#...........................Additional notes............................
'''In addition to cv2.GaussianBlur() filter, other commonly used filters 
are: Average blur, cv2.blur(); Median blur, cv2.medianBlur(); and 
and Bilateral filter, cv2.bilateralFilter. For example, Bilateral filter
can be used to filter high frequecy components while maintaining the
edges of the image, this is the strength of this filter compared to others.
Below example implementaion of Bilateral filter:'''
import cv2
from matplotlib import pyplot as plt

img = cv2.imread("myimage.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

diameter = 30# diameter of the pixels included in the neighborhood.
sigmaColor = 20 # color standard deviation  in the neighborhood.
sigmaSpace = 20 # space standard deviation in the neighborhood
blurred = cv2.bilateralFilter(img, diameter, sigmaColor, sigmaSpace)
plt.imshow(threshdimage, cmap = 'gray', interpolation = 'bicubic')# plot  
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()

Coderunner

Jawaban yang mirip dengan “Thresholding dengan OpenCV”

Pertanyaan yang mirip dengan “Thresholding dengan OpenCV”

Lebih banyak jawaban terkait untuk “Thresholding dengan OpenCV” di Python

Jelajahi jawaban kode populer menurut bahasa

Jelajahi bahasa kode lainnya