Rate this post

OpenCV là một thư viện Computer Vision phổ biến, hầu hết được sử dụng cho các ứng dụng thời gian thực. Trong blog này, chúng tôi điểm qua 9 hàm OpenCV được sử dụng thường xuyên nhất để sử dụng thư viện một cách hiệu quả cùng với các ví dụ về code.

Các bài viêt liên quan:

Color to GrayScale

Color to GrayScale – Chúng tôi chuyển đổi hình ảnh BGR sang hình ảnh thang độ xám để chúng tôi có thể quan sát cường độ của các điểm ảnh trong hình ảnh chứ không phải các cấu hình màu trong hình ảnh.

import cv2 as cv
img = cv.imread('PATH OF THE IMAGE IN YOUR LOCAL SYSTEM')
cv.imshow("Color",img)
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
cv.imshow("Gray",gray)
cv.waitKey(0)

Blurring an image using GuassianBlur

Làm mờ hình ảnh bằng GuassianBlur. Chúng tôi làm mờ hình ảnh để giảm nhiễu trong hình ảnh do ánh sáng không tốt và một số vấn đề với cảm biến trong máy ảnh khi chụp ảnh. Trong đoạn mã, để tăng phạm vi làm mờ, chúng ta có thể tăng kích thước hạt nhân từ (3,3) lên (7,7).

import cv2 as cv

img = cv.imread('Path to the image in your local system')
cv.imshow("Color",img)
blur = cv.GaussianBlur(img,(7,7),cv.BORDER_DEFAULT)
cv.imshow("Blurred",blur)
cv.waitKey(0)

Edge Cascade

Edge Cascade để phát hiện các cạnh trong hình ảnh để học mô hình tốt hơn.Chúng ta đang sử dụng công cụ dò Canny Edge rất phổ biến.

import cv2 as cv
img =cv.imread('Path to the image in your local system')
cv.imshow("Color",img)
canny = cv.Canny(img,125,175)
cv.imshow("Edge Cascaded image",canny)
cv.waitKey(0)

Dilation of the cascaded image

Dilation của hình ảnh xếp tầng. Điều này làm dày các cạnh từ hình ảnh xếp tầng để nâng cao khả năng phát hiện cạnh và các tính năng phát hiện tốt hơn.

import cv2 as cv
img = cv.imread('Path to the image in your local system')
cv.imshow("Color",img)
canny = cv.Canny(img,125,175)
#dilating the images:
dilated = cv.dilate(canny,(7,7),iterations=3)
cv.imshow("dilated images",dilated)
cv.waitKey(0)

Resize and cropping the image

Thay đổi kích thước và cắt hình ảnh cho cùng kích thước đối với hình ảnh có kích thước khác nhau.

import cv2 as cv
img = cv.imread('Path to the image in your local system')
cv.imshow("Color",img)
#resizing the images:
resize = cv.resize(img,(500,500),interpolation=cv.INTER_CUBIC)
crop = img[50:200,200:400]
cv.imshow("cropped image",crop)
cv.imshow("Resized images",resize)cv.waitKey(0)

Determining contours in an image

Xác định các đường bao trong một hình ảnh. Đường viền không là gì khác ngoài một đường cong hoặc đường nối tất cả các điểm liên tục trong hình ảnh (dọc theo đường viền) có cùng màu sắc hoặc cường độ. Nó được sử dụng trong phát hiện đối tượng chủ yếu để phân tích hình dạng.

import cv2 as cv
img = cv.imread('Path to the image in your local system')
cv.imshow("Color",img)

#reduces the contours when blurring the image
blur = cv.GaussianBlur(img,(7,7),cv.BORDER_DEFAULT)
canny = cv.Canny(blur,125,175)

#returns all the contours in the forma of list(RETR_LIST).
#chain_approx_simple compresses the contorurs and returns only the two end points.

contours,hierarchies = cv.findContours(canny,cv.RETR_LIST,cv.CHAIN_APPROX_SIMPLE)
print("NO of contours : ",len(contours))

#threshold = binarizing the image.It is another method to find contours
ret,thresh = cv.threshold(img,125,125,cv.THRESH_BINARY)
cv.imshow("Thresh",thresh)
cv.waitKey(0)

Splitting an image into its respective RED, GREEN, and BLUE parts

Ghép hình ảnh vào các phần ĐỎ, XANH LÁ và XANH LÁ tương ứng của nó. Ở đây, nó được mô tả như một hình ảnh GreyScale và do đó chúng ta có thể quan sát nồng độ điểm ảnh cho các màu tương ứng.

import cv2 as cv
import numpy as np
img = cv.imread('Path to the image in your local system')
cv.imshow("Color",img)
b,g,r = cv.split(img)
cv.imshow("Blue",b)
cv.imshow("Green",g)
cv.imshow("Red",r)

BITWISE operators in OpenCV

Toán tử BITWISE trong OpenCV Chúng ta sẽ hiểu trực quan từng thao tác bitwise bằng cách sử dụng hình chữ nhật và hình tròn làm ví dụ.

import cv2 as cv
import numpy as np
blank = np.zeros((400,400),dtype = 'uint8')
rectangle = cv.rectangle(blank.copy(),(30,30),(370,370),255,-1)
circle = cv.circle(blank.copy(),(200,200),200,255,-1)
cv.imshow('circle',circle)
cv.imshow('rectange',rectangle)

#bitwise AND
bitwise_and = cv.bitwise_and(rectangle,circle)
cv.imshow("Bitwise_AND",bitwise_and)
#bitwise_OR
bitwise_or = cv.bitwise_or(rectangle,circle)
cv.imshow('Bitwise_OR',bitwise_or)
#bitwise XOR
bitwise_xor = cv.bitwise_xor(rectangle,circle)
cv.imshow('Bitwise_XOR',bitwise_xor)
#bitwise_NOT
bitwise_not = cv.bitwise_not(rectangle,circle)
cv.imshow('Bitwise_NOT',bitwise_not)

Plotting a histogram of an image

Vẽ biểu đồ của một hình ảnh.

Điều này cho bạn trực giác về sự phân bố pixel trong hình ảnh.

import cv2 as cv
import matplotlib.pyplot as plt

img = cv.imread('Path to the image in your local system')
cv.imshow("Color",img)
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

gray_hist = cv.calcHist([gray],[0],None,[256],[0,256])

plt.figure()
plt.title('grayscale Histogram')
plt.xlabel('Bins')
plt.ylabel('No.of pixels')
plt.plot(gray_hist)
plt.xlim([0,256])
plt.show()

Đó là tất cả cho bây giờ. Xin vui lòng vỗ tay nếu bạn đã học được điều gì đó từ đây. Ngoài ra, vui lòng cung cấp ý kiến trong trường hợp nghi ngờ, thắc mắc hoặc phản hồi.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now