#include <opencv2\opencv.hpp> #include <iostream> using namespace std; using namespace cv; int main() { Mat srcImage = imread("D:/opencv/operator/PHOTO/1.png"); Mat logoImage = imread("D:/opencv/operator/PHOTO/111.png"); Mat imageRoi = srcImage(Rect(100, 600, logoImage.cols, logoImage.rows)); Mat mask = imread("D:/opencv/operator/PHOTO/111.png", 0); logoImage.copyTo(imageRoi, mask); imwrite("D:/opencv/operator/PHOTO/21.png", srcImage); return 0; }
时间: 2024-04-09 22:32:31 浏览: 20
这段代码使用了OpenCV库来进行图像处理操作。首先,它通过imread函数加载了两张图像:srcImage和logoImage。然后,通过Rect函数定义了一个感兴趣区域imageRoi,其位置在srcImage上的(100, 600),大小与logoImage相同。接下来,使用imread函数加载了一个名为mask的图像,并将其转换为灰度图像。最后,通过copyTo函数将logoImage复制到imageRoi中,并使用mask作为掩码来实现融合效果。最终,使用imwrite函数将处理后的图像保存到指定路径下的"21.png"文件中。整个操作完成后,返回0表示程序运行成功结束。
相关问题
opencv+ubantu
OpenCV是一个跨平台的计算机视觉库,可以在多个操作系统上使用,包括Ubuntu。在Ubuntu上安装OpenCV可以通过命令行完成,具体步骤如下:
1. 打开终端并输入以下命令以更新软件包列表:
```
sudo apt-get update
```
2. 输入以下命令以安装OpenCV:
```
sudo apt-get install libopencv-dev python-opencv
```
这将安装OpenCV的库和Python绑定。
3. 安装完成后,您可以使用以下命令检查OpenCV是否正确安装:
```
pkg-config --modversion opencv
```
如果OpenCV正确安装,则会显示OpenCV的版本号。
在安装完成后,您可以使用OpenCV来进行计算机视觉应用程序的开发。下面是一个使用OpenCV在Ubuntu上显示图像的示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
Mat srcImage = imread("test.jpg");
if (srcImage.empty()) {
cout << "Could not open or find the image" << endl;
return -1;
}
imshow("Origin", srcImage);
waitKey(0);
return 0;
}
```
该代码将读取名为“test.jpg”的图像文件并在窗口中显示它。如果无法打开或找到图像文件,则会显示错误消息。您可以使用OpenCV的其他功能来处理和分析图像。
可以帮我写一段代码,利用VS+opencv+QT 实现打开一张图片并实现双线性插值,双三次插值
当然可以,以下是实现代码:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 打开图片
Mat srcImg = imread("lena.jpg");
if (srcImg.empty()) {
cout << "无法打开图片!" << endl;
return -1;
}
// 缩小一半
Mat dstImg1, dstImg2;
resize(srcImg, dstImg1, Size(), 0.5, 0.5, INTER_LINEAR);
// 双线性插值
resize(srcImg, dstImg2, Size(), 0.5, 0.5, INTER_CUBIC);
// 显示结果
namedWindow("SRCImage", WINDOW_AUTOSIZE);
namedWindow("LinearInterpolation", WINDOW_AUTOSIZE);
namedWindow("CubicInterpolation", WINDOW_AUTOSIZE);
imshow("SRCImage", srcImg);
imshow("LinearInterpolation", dstImg1);
imshow("CubicInterpolation", dstImg2);
waitKey(0);
return 0;
}
```
这段代码可以实现利用OpenCV读取一张图片并进行双线性插值和双三次插值。
相关推荐
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)