環境配置
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和圖像處理庫,廣泛用于各種計算機視覺任務,如圖像處理、視頻分析、人臉識別、物體檢測、機器學習等。它提供了豐富的函數和工具,用于處理圖像和視頻數據,支持多種編程語言(如 C++、Python、Java 等)。
首先我們去官網下載Sources版本;
下載好過后,將壓縮包拖入虛擬機中,并用命令解壓,配置環境;
unzip opencv-4.11.0.zip?//解壓文件
解壓完成過后,在自己的目錄下就會多一個opencv-4.11.0的文件夾,根據自己下載的版本,后綴可能有所不同。
然后進入opencv文件夾,安裝相關依賴庫cmake,同時創建自己的編譯文件夾并配置、編譯,以便后續編譯等操作。
注意:這里消耗時間比較長,需要耐心等待,在干其他事情時,確保自己的虛擬機開啟,以免電腦進入休眠斷開連接。
cd opencv-3.4.10?//進入opencv文件夾
sudo apt install cmake?//安裝依賴
mkdir my_build_dir?//創建文件夾
cd my_build_dir?//進入文件夾
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
//配置編譯文件夾
sudo make -j4?//編譯
sudo make install
隨后配置OpenCV編譯環境:
sudo gedit /etc/ld.so.conf.d/opencv.conf //添加到路徑
source /etc/bash.bashrc?//使配置生效并更新
sudo updatedb ?
圖片編輯
在虛擬機中保存一張自己需要編輯的圖片(IImage),然后創建函數對圖片進行修改,具體代碼根據自己的要求編輯,這里展示亮度調整處理。
加載圖像:
IplImage* image = cvLoadImage("lena.jpg");argc == 2 ? cvLoadImage(argv[1]) : 0;
計算中心點:
center = cvPoint(image->width / 2, image->height / 2);
對圖像進行亮度調整:
for (int i = 0; i < image->height; i++)for (int j = 0; j < image->width; j++) {double dx = (double)(j - center.x) / center.x;double dy = (double)(i - center.y) / center.y;double weight = exp((dx * dx + dy * dy) * scale);uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);ptr[0] = cvRound(ptr[0] * weight);ptr[1] = cvRound(ptr[1] * weight);ptr[2] = cvRound(ptr[2] * weight);}
最終效果
第一張為處理后的圖片,第二張為處理前: