You are on page 1of 3

TỔNG ÔN THỊ GIÁC MÁY TÍNH

1. Đọc ảnh, ghi ảnh


2. Đọc video, ghi video
3. Hàm chuyển đổi màu
- Đổi sang ảnh xam
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- Đổi sang ảnh nhị phân
_, bw_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
- Đổi màu RGB sang HSV
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
4. Hàm thay đổi độ sáng, độ tương phản
alpha = 1.5 #Điều chỉnh độ tương phản (1.0 – 3.0)
beta = 0 #Điều chỉnh độ sáng (0-100)
result = cv2.convertScaleAbs(img, alpha =alpha, beta=beta)
5. Biến đổi ảnh âm bản
neg_img = 255 – img
6. Phóng đại ảnh, thay đổi kích thước ảnh
cv2.resize(img, None, fx=, fy=, interpolation=cv2.INTER_LINEAR)
7. Cắt ảnh
crop_img = img[start_row:end_row, start_col:end_col]
8. Dịch chuyển ảnh
- Tạo ma trận dịch chuyển : M = np.float32([[1, 0, dx], [0, 1, dy]])
- cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))
9. Xoay ảnh
- Tạo ma trận xoay: M = cv2.getRotationMatrix2D(center, angle, scale)
- cv2.warpAffine(img, M, (height, width))
10. Biến đối phối cảnh ảnh
pts1 = np.float32([[50, 50], [350, 50], [50, 350], [350, 350]])
pts2 = np.float32([[0, 0], [200, 50], [50, 300], [300, 300]])
M = cv2.getPerspectiveTransform(pts1, pts2)
Dst = cv2.warpPerspective(img, M, (300, 300))
11. Cân bằng Histogram
- Hàm cân bằng Histogram trong OpenCV:
cv2.equalizaHist(img)
- Hiện Historgram trên matplotlib:
plt.hist(img)
12. Chú thích ảnh bằng các hình vẽ cơ bản
- Vẽ đường thằng: cv2.line(img, start_point, end_point, color, thickness)
- Vẽ đường tròn: cv2.circle(img, tâm, bán kính, màu, độ dày nét vẽ)
- Vẽ hình chữ nhật: cv2.rectangle(img, start_point, end_point, màu, độ dày nét vẽ)
- Vẽ hình elip: cv2.ellipse(img, )
- Viết chữ lên ảnh: cv2.putText(img, text, position,
cv2.FONT_HERSHEY_COMPLEX, 1.5, (255, 255, 0))
13. Hàm tách biên Sobel
grad_x = cv2.Sobel(gray_img, cv2.CV_64F, 1, 0, ksize)
grad_y = cv2.Sobel(gray_img, cv2.CV_64F, 0, 1, ksize)
abs_grad_x = cv2.convertScaleAbs(grad_x)
abs_grad_y = cv2.convertScaleAbs(grad_y)
grad = cv2.addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0)
14. Kĩ thuật phát hiện biên Laplace
cv2.Laplacian(gray_img, cv2.CV_64F, ksize=kernel_size)
15. Kĩ thuật phát hiện biên Canny
cv2.Canny(gray_img, 150, 200)
16. Contours
17. Phân ngưỡng
- Phân ngưỡng nhị phân
ret, binary = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
- Phân ngưỡng thích nghi
adaptive = cv2.adaptiveThreshod(gray_img, 255,
cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
- Phân ngưỡng otsu
ret, otsu = cv2.threshold(gray_img, 0, 277, cv2.THRESH_BINARY +
cv2.THRESH_OTSU)
18. Phép giãn nở ảnh
kersize = np.ones((3, 3), np.float32)
dilation = cv2.dilate(img, kersize, 1)
coanh = cv2.erode(img, kersize, 1)
19.

You might also like