【OpenCV安装和配置、读取、显示、保存、创建、绘制】

OpenCV安装和配置、读取、显示、保存、创建、绘制

1. 安装和配置OpenCV

在使用OpenCV之前,需要先安装OpenCV库,并在开发环境中进行配置。假设你已经安装了CMake和OpenCV库,下面是配置步骤:
步骤一:安装OpenCV库

// bash
sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config libopencv-dev

步骤二:创建项目并配置CMakeLists.txt

// cmake
cmake_minimum_required(VERSION 3.10)
project(OpenCV_Project)
find_package(OpenCV REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main PRIVATE ${OpenCV_LIBS})

步骤三:编译项目

// bash
mkdir build
cd build
cmake ..
Make

2. 读取图像

使用cv::imread函数来读取图像文件。

// cpp
// 读取图像
cv::Mat image = cv::imread("test.jpg", cv::IMREAD_COLOR);

参数解释:
• “test.jpg”: 图像的路径和文件名。
• cv::IMREAD_COLOR: 读取彩色图像。如果需要以灰度图像读取,可以使用cv::IMREAD_GRAYSCALE。
注意: 确保路径正确,否则返回的image会是空的。

3. 显示图像

使用cv::imshow函数来显示图像。

// cpp
// 显示图像
cv::imshow("Display Window", image);

注意: 显示的窗口名会影响后续操作,确保窗口名与期望一致。

4. 保存图像

使用cv::imwrite函数来保存图像。

// cpp
// 保存图像
cv::imwrite("output.jpg", image);

参数解释:
• “output.jpg”: 输出文件名和路径。
• image: 要保存的图像数据。
注意: 确保输出路径和文件名正确,否则可能无法保存文件。

5. 创建空白画布

使用cv::Mat构造函数创建空白图像。

// cpp
// 创建空白图像
cv::Mat blank(500, 500, CV_8UC3, cv::Scalar(0,0,0));

参数解释:
• 500: 图像高度。
• 500: 图像宽度。
• CV_8UC3: 数据类型为8位无符号整数,3个通道(BGR)。
• cv::Scalar(0,0,0): 初始值为黑色。

6. 在画布上绘制红色直线

使用cv::line函数在图像上绘制直线。

// cpp
// 绘制红色直线
cv::line(blank, cv::Point(0,0), cv::Point(500,500), cv::Scalar(0,0,255), 5, cv::LINE_AA);

参数解释:
• blank: 目标图像。
• cv::Point(0,0): 起始点(左上角)。
• cv::Point(500,500): 终点(右下角)。
• cv::Scalar(0,0,255): 红色(BGR格式)。
• 5: 线宽,以像素为单位。
• cv::LINE_AA: 使用抗锯齿(平滑)算法。

7. 关闭窗口

使用cv::waitKey和cv::destroyAllWindows函数来管理窗口生命周期。

// cpp
// 等待用户按键
cv::waitKey(0);
cv::destroyAllWindows();

参数解释:
• 0: 无穷等待,直到用户按键。
• cv::destroyAllWindows(): 关闭所有窗口。

8. 完整代码

// cpp

#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
int main() {
// 读取图像
cv::Mat image = cv::imread("test.jpg", cv::IMREAD_COLOR);
// 检查图像是否读取成功
if (image.empty()) {
std::cout << "无法读取图像文件" << std::endl;
return -1;
}
// 创建空白图像
cv::Mat blank(500, 500, CV_8UC3, cv::Scalar(0,0,0));
// 绘制红色直线
cv::line(blank, cv::Point(0,0), cv::Point(500,500), cv::Scalar(0,0,255), 5, cv::LINE_AA);
// 显示图像
cv::imshow("Original Image", image);
cv::imshow("Blank Image", blank);
// 保存图像
cv::imwrite("output.jpg", image);
cv::imwrite("blank_output.jpg", blank);
// 等待用户按键
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}

9. 总结

通过上述步骤,我们学习了如何在C++中配置OpenCV,读取和显示图像,创建和绘制空白图像,以及保存图像的基本操作。这些是OpenCV编程的基础,熟练掌握后可以进行更复杂的图像处理任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值