Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để tải và hiển thị hình ảnh trong OpenCV bằng C ++?

Trong chủ đề này, chúng tôi sẽ xác định cách tải và hiển thị hình ảnh bằng OpenCV trong C ++. Có các chức năng sau cần thiết để tải và hiển thị hình ảnh trong OpenCV.

  • Tấm lót: Mat không phải là một chức năng. Nó là một cấu trúc dữ liệu, một kiểu biến. Giống như các kiểu biến int, char, string trong C ++, Mat là một biến của OpenCV, nó tạo ra một cấu trúc dữ liệu ma trận để tải hình ảnh bên trong nó. Trong chương trình này, chúng tôi đã viết 'Mat myImage;'. Điều đó có nghĩa là chúng tôi đang khai báo một biến ma trận có tên 'myImage'.
  • namesWindow (): Nó phân bổ một số bộ nhớ và tạo một cửa sổ để hiển thị hình ảnh. Nó hoạt động giống như một khung ảnh. Trong OpenCV, chúng ta phải tạo hàm dưới dạng 'nameWindow ("tên của cửa sổ", cờ)'.
  • 3 . imread (): Chức năng này đọc một hình ảnh từ một vị trí xác định. Chương trình này đọc hình ảnh từ ổ 'C:'. Để sử dụng chức năng này, bạn phải viết nó là 'imread ("vị trí của hình ảnh / tên của hình ảnh có phần mở rộng", cờ)'.
  • imshow (): Chức năng này hiển thị hình ảnh trong cửa sổ đã xác định. Để sử dụng hàm này, bạn phải viết là 'imshow (tên của cửa sổ ", tên của ma trận)'.
  • waitKey (): Đây là một chức năng quan trọng của OpenCV. Để xử lý hình ảnh và thực thi các hoạt động, chúng ta phải cho phép hệ thống một thời gian. Nếu chúng tôi không làm điều đó, chúng tôi sẽ không

Hàm này đợi một khoảng thời gian nhất định trước khi đóng chương trình. Nếu bạn sử dụng waitKey (10000), nó sẽ đóng chương trình sau 10 giây. Nếu bạn viết waitKey (0), nó sẽ nhận được đầu ra mong muốn. Chức năng này sẽ cho phép chúng tôi cung cấp cho hệ thống thời gian cần thiết để hoạt động. chờ thao tác gõ phím từ người dùng. Khi người dùng nhấp vào bất kỳ phím nào từ bàn phím, chương trình sẽ dừng lại. Hàm này phải được viết là 'waitKey (mili giây)'.

  • killWindows (): Chức năng này đóng tất cả các cửa sổ. Khi chúng tôi tạo cửa sổ, chúng tôi cấp phát một số bộ nhớ. DestowWindow () chức năng giải phóng bộ nhớ đó vào hệ thống.

Chương trình sau đây trình bày cách tải và hiển thị hình ảnh bằng Thư viện OpenCV.

Ví dụ

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
   Mat myImage;//declaring a matrix named myImage//
   namedWindow("PhotoFrame");//declaring the window to show the image//
   myImage = imread("lakshmi.jpg");//loading the image named lakshme in the matrix//
   if (myImage.empty()) {//If the image is not loaded, show an error message//
      cout << "Couldn't load the image." << endl;
      system("pause");//pause the system and wait for users to press any key//
      return-1;
   }
   imshow("PhotoFrame", myImage);//display the image which is stored in the 'myImage' in the "myWindow" window//  
   destroyWindow("Photoframe");//close the window and release allocate memory//
   waitKey(0);//wait till user press any key
   return 0;
}

Khi thực hiện chương trình trên, chúng tôi nhận được kết quả sau -

Đầu ra

Làm cách nào để tải và hiển thị hình ảnh trong OpenCV bằng C ++?