基于 OpenCV 的圖像處理
一、實驗背景
OpenCV 是一個開源的計算機視覺庫,廣泛應用于圖像處理、視頻分析、目標檢測等領域。通過學習 OpenCV,可以快速實現圖像和視頻的處理功能,為復雜的應用開發
奠定基礎。本實驗旨在通過實際代碼示例,掌握 OpenCV 的基本功能和使用方法。
二、實驗目的
-
學習如何使用 OpenCV 進行圖像處理。
-
掌握 OpenCV 的視頻讀取和播放功能。
-
實現視頻錄制功能,并理解視頻流的處理邏輯。
三、實驗內容
-
創建一個代碼文件夾 code ,并在其中創建 test.cpp 文件。
-
將以下代碼復制到 test.cpp 文件中:
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;int main(int argc, char** argv) {// 加載圖像Mat image = imread("lena.jpg", IMREAD_COLOR); // 默認加載彩色圖像// 檢查圖像是否成功加載if (image.empty()) {cout << "無法加載圖像!請檢查文件路徑。" << endl;return -1;}// 創建一個用于存儲灰度圖像的 Mat 對象Mat gray_image;// 使用 OpenCV 的 cvtColor 函數將彩色圖像轉換為灰度圖像cvtColor(image, gray_image, COLOR_BGR2GRAY);// 保存灰度圖像imwrite("gray_image.png", gray_image);// 顯示原始圖像和灰度圖像namedWindow("Original Image", WINDOW_AUTOSIZE);imshow("Original Image", image);namedWindow("Gray Image", WINDOW_AUTOSIZE);imshow("Gray Image", gray_image);// 等待用戶按鍵后關閉窗口waitKey(0);return 0;
}
3.編譯代碼
g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv`
4.準備一張名為lena.jpg
的圖片,與代碼文件放在同一目錄下。
5.運行程序
./test
四、實驗結果
- 程序讀取
lena.jpg
圖片,對圖片進行徑向漸變處理后,生成新的圖片gray_image.png
。
- 定義一個
Mat
對象gray_image
,用于存儲轉換后的灰度圖像。- 使用
cvtColor
函數將彩色圖像轉換為灰度圖像。- 參數
COLOR_BGR2GRAY
表示從 BGR 顏色空間轉換到灰度顏色空間。- 使用
namedWindow
和imshow
分別顯示原始圖像和灰度圖像。
COLOR_BGR2GRAY
表示從 BGR 顏色空間轉換到灰度顏色空間。
- 使用
namedWindow
和imshow
分別顯示原始圖像和灰度圖像。