用opencv 与c++ 实现累加三通道
时间: 2024-05-09 08:20:00 浏览: 61
以下是使用OpenCV和C语言实现累加三通道的示例代码:
```c
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取两张图片
Mat img1 = imread("img1.jpg");
Mat img2 = imread("img2.jpg");
// 判断图片是否读取成功
if (img1.empty() || img2.empty())
{
cout << "Failed to read image!" << endl;
return -1;
}
// 确保两张图片大小相同
resize(img1, img1, img2.size());
// 将图片转为3通道的浮点型图像
Mat img1f, img2f;
img1.convertTo(img1f, CV_32FC3);
img2.convertTo(img2f, CV_32FC3);
// 三通道相加
Mat img3f = img1f + img2f;
// 将浮点型图像转为8位无符号整型图像
Mat img3;
img3f.convertTo(img3, CV_8UC3);
// 显示结果
imshow("img1", img1);
imshow("img2", img2);
imshow("img3", img3);
waitKey(0);
return 0;
}
```
该代码首先读取两张图片,然后将它们转为3通道的浮点型图像。接着将两张图像相加,得到一个新的3通道浮点型图像。最后将浮点型图像转为8位无符号整型图像,并显示结果。
阅读全文