opencv电子相册
时间: 2024-01-06 12:25:23 浏览: 24
以下是使用OpenCV C++制作电子相册的步骤:
1. 图片读取:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图片
cv::Mat image = cv::imread("image.jpg");
// 检查是否成功读取图片
if (image.empty()) {
std::cout << "无法读取图片" << std::endl;
return -1;
}
// 显示图片
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
```
2. 图片展示:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 创建窗口
cv::namedWindow("Image", cv::WINDOW_NORMAL);
// 设置窗口大小
cv::resizeWindow("Image", 800, 600);
// 读取图片
cv::Mat image = cv::imread("image.jpg");
// 检查是否成功读取图片
if (image.empty()) {
std::cout << "无法读取图片" << std::endl;
return -1;
}
// 显示图片
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
```
3. 键盘控制:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 创建窗口
cv::namedWindow("Image", cv::WINDOW_NORMAL);
// 设置窗口大小
cv::resizeWindow("Image", 800, 600);
// 读取图片
cv::Mat image = cv::imread("image.jpg");
// 检查是否成功读取图片
if (image.empty()) {
std::cout << "无法读取图片" << std::endl;
return -1;
}
// 显示图片
cv::imshow("Image", image);
// 键盘控制
while (true) {
int key = cv::waitKey(0);
// 按下ESC键退出
if (key == 27) {
break;
}
}
return 0;
}
```
4. 效果显示:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 创建窗口
cv::namedWindow("Image", cv::WINDOW_NORMAL);
// 设置窗口大小
cv::resizeWindow("Image", 800, 600);
// 读取图片
cv::Mat image = cv::imread("image.jpg");
// 检查是否成功读取图片
if (image.empty()) {
std::cout << "无法读取图片" << std::endl;
return -1;
}
// 显示图片
cv::imshow("Image", image);
// 键盘控制
while (true) {
int key = cv::waitKey(0);
// 按下ESC键退出
if (key == 27) {
break;
}
}
// 图片灰度化
cv::Mat grayImage;
cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
// 显示灰度图像
cv::imshow("Gray Image", grayImage);
cv::waitKey(0);
return 0;
}
```
5. 源码总结:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 创建窗口
cv::namedWindow("Image", cv::WINDOW_NORMAL);
// 设置窗口大小
cv::resizeWindow("Image", 800, 600);
// 读取图片
cv::Mat image = cv::imread("image.jpg");
// 检查是否成功读取图片
if (image.empty()) {
std::cout << "无法读取图片" << std::endl;
return -1;
}
// 显示图片
cv::imshow("Image", image);
// 键盘控制
while (true) {
int key = cv::waitKey(0);
// 按下ESC键退出
if (key == 27) {
break;
}
}
// 图片灰度化
cv::Mat grayImage;
cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
// 显示灰度图像
cv::imshow("Gray Image", grayImage);
cv::waitKey(0);
// 图片保存
cv::imwrite("gray_image.jpg", grayImage);
return 0;
}
```