Rate this post

Trong hướng dẫn cuối cùng, chúng tôi đã thiết lập thành công môi trường OpenCV . Bây giờ cuối cùng chúng ta có thể bắt đầu học những điều cơ bản. Chúng ta sẽ xem cách làm việc với hình ảnh trong OpenCV.

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

Để viết mã, bạn có thể sử dụng bất kỳ trình soạn thảo nào bạn chọn.

Các bước để đọc, hiển thị và lưu hình ảnh trong OpenCV

Đọc hình ảnh

Để đọc nội dung của hình ảnh, chúng ta có một chức năng cv2.imread(). Hình ảnh phải nằm trong cùng một thư mục. Nếu không, thì đường dẫn đầy đủ của hình ảnh sẽ được cung cấp.

Hàm nhận hai đối số:

  1. Đối số đầu tiên là đường dẫn của hình ảnh.
  2. Đối số thứ hai là một cờ mô tả cách hình ảnh được đọc. Giá trị mặc định là:
    • cv2.IMREAD_COLOR: Tải hình ảnh có màu. Nó được sử dụng theo mặc định.
    • cv2.IMREAD_GRAYSCALE: Tải hình ảnh ở chế độ màu xám.
    • cv2.IMREAD_UNCHANGED: Tải hình ảnh như nó vốn có, bao gồm cả các kênh alpha.
import numpy as np
import cv2

# loads the image in color
img = cv2.imread("cat.jpg")

# loads the image in grayscale 
gray_img = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)

Như bạn có thể thấy, chúng tôi cũng nhập numpy trong chương trình của mình. OpenCV sử dụng numpy và với numpy, chúng ta có thể dễ dàng thao tác dữ liệu. Sau khi chạy chương trình này bằng Python, chúng ta sẽ gán dữ liệu hình ảnh vào biến img.

Xem thêm OpenCV là gì? tìm hiểu OpenCV

Hiển thị hình ảnh

Để hiển thị một hình ảnh trên cửa sổ, chúng ta có một chức năng cv2.imshow(). Chức năng này tạo một cửa sổ và hiển thị hình ảnh với kích thước ban đầu.

import numpy as np
import cv2

# load image in color
img = cv2.imread("cat.jpg")
#load image in grey
gimg = cv2.imread("cat.jpg",0)

#Displaying images
cv2.imshow("cat image", img)
cv2.imshow("gray image", gimg)

cv2.waitKey(0)
cv2.destroyAllWindows()

Đầu ra:

Hàm có hai tham số. Tham số đầu tiên là một chuỗi mô tả tên của cửa sổ. Tham số thứ hai là mảng hình ảnh chứa dữ liệu hình ảnh.

cv2.waitKey()hàm chờ ngắt bàn phím trong một khoảng thời gian cụ thể tính bằng mili giây. Ở đây, chúng tôi đã vượt qua 0 (không) chỉ định rằng nó phải đợi trong một khoảng thời gian không xác định cho đến khi chúng tôi nhấn bất kỳ phím nào từ bàn phím và quá trình thực thi tiếp tục.

Hàm tiếp theo cv2.destroyAllWindows()đóng tất cả các cửa sổ mà hình ảnh được hiển thị.

Viết hình ảnh

Để lưu hình ảnh vào đĩa cục bộ của bạn, chúng tôi có chức năng này cv2.imwrite().

Hàm có hai đối số:

  1. Đối số đầu tiên là một chuỗi là tên tệp.
  2. Đối số thứ hai là mảng hình ảnh mà bạn muốn lưu.
cv2.imwrite("cat_image.png", img)

Xem thêm Thao tác cơ bản trên hình ảnh Open CV

Tóm tắt mọi thứ

Vì vậy, bây giờ bạn có thể đọc, hiển thị và lưu hình ảnh trong OpenCV . Hãy tạo một chương trình hiển thị một hình ảnh sau đó đợi từ bàn phím ngắt. Nếu người dùng nhấn phím ‘c’, thì nó sẽ lưu hình ảnh màu trong đĩa của chúng ta, nếu người dùng nhấn phím ‘g’ thì nó sẽ lưu hình ảnh ở thang độ xám.

import cv2

#Reading images in color and grayscale
color_img = cv2.imread('cat.jpeg')
gray_img = cv2.imread('cat.jpeg',0)

#Displaying the image
cv2.imshow('Cat image', color_img)

#Storing the key pressed by user 
k = cv2.waitKey(0)

#Check if user hits 'c' or 'g' key
if( k == ord('c') ):
  cv2.imwrite('color.jpg', color_img )
  print("Image is saved color")
  cv2.destroyAllWindows()

if( k == ord('g') ):
  cv2.imwrite('gray.jpg', gray_img )
  print("Image saved in grayscale")
  cv2.destroyAllWindows()

Bản tóm tắt

Trong bài viết này, chúng tôi đã học cách đọc hình ảnh, ghi hình ảnh vào đĩa cục bộ của chúng tôi. Chúng tôi cũng đã thấy cách chúng tôi có thể lấy thông tin đầu vào từ người dùng và kiểm tra xem người dùng đã nhấn phím nào. Cuối cùng, chúng tôi đã tạo một chương trình cơ bản trong OpenCV về cách làm việc với hình ảnh.

Có khó khăn gì khi đọc, hiển thị và ghi hình ảnh trong OpenCV không? Đề cập trong phần bình luận.

Xem thêm Xây dựng backlink từ hình ảnh

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