#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 19:32:31 浏览: 63
这段代码使用了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的其他功能来处理和分析图像。
opencv 变形匹配C++
以下是OpenCV中变形匹配的C++实现代码示例:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取原始图像和模板图像
Mat srcImage = imread("srcImage.jpg"); Mat tplImage = imread("tplImage.jpg");
// 定义变量
Mat resultImage;
Point minLoc, maxLoc;
double minVal, maxVal;
// 进行模板匹配
matchTemplate(srcImage, tplImage, resultImage, CV_TM_CCOEFF_NORMED);
// 获取匹配结果中的最大值和最小值及其位置
minMaxLoc(resultImage, &minVal, &maxVal, &minLoc, &maxLoc);
// 绘制匹配结果
rectangle(srcImage, maxLoc, Point(maxLoc.x + tplImage.cols, maxLoc.y + tplImage.rows), Scalar(0, 0, 255), 2, 8, 0);
// 显示匹配结果
imshow("result", srcImage);
waitKey(0);
return 0;
}
```
该代码实现了基于OpenCV的变形匹配,其中使用了`matchTemplate`函数进行模板匹配,使用`minMaxLoc`函数获取匹配结果中的最大值和最小值及其位置,最后使用`rectangle`函数在原始图像中绘制匹配结果。
阅读全文