查看系统版本
(base) [root@localhost opencv]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Lance)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)"
ANSI_COLOR="0;31"
下载opencv及其拓展opencv_contrib
git clone https://gitcode.com/gh_mirrors/opencv31/opencv.git
cd opencv
git checkout 3.4.14
git clone https://gitcode.com/xcldswz/opencv_contrib.git
cd opencv_contrib
git checkout 3.4.14
编译
cd opencv
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF ..
make -j8
sudo make install
sudo ldconfig
测试opencv
check_opencv_version.cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
std::cout << "OpenCV 版本: " << CV_VERSION << std::endl;
return 0;
}
编译
g++ check_opencv_version.cpp -o check_opencv_version `pkg-config --cflags --libs opencv`
测试
./check_opencv_version
测试opencv_contrib
使用 opencv_contrib 中的 xphoto 模块来进行白平衡处理
test_white_balance.cpp
#include <opencv2/opencv.hpp>
#include <opencv2/xphoto/white_balance.hpp>
#include <iostream>
int main() {
// 读取图像
cv::Mat img = cv::imread("test.jpg");
if (img.empty()) {
std::cerr << "Could not open or find the image!" << std::endl;
return -1;
}
// 创建白平衡器
cv::Ptr<cv::xphoto::SimpleWB> wb = cv::xphoto::createSimpleWB();
// 应用白平衡
cv::Mat balanced_img;
wb->balanceWhite(img, balanced_img);
// 显示原始图像和白平衡后的图像
cv::imshow("Original Image", img);
cv::imshow("White Balanced Image", balanced_img);
cv::waitKey(0);
return 0;
}
编译
g++ -o test_white_balance test_white_balance.cpp `pkg-config --cflags --libs opencv`
测试
./test_white_balance