Opencv学习笔记(图片融合、图片显示、图片存储)
最后发布:2019-03-14 21:49:29
首发:2019-03-14 21:49:29
int main()
{
Mat apple = imread(“apple.hpg”);
namedWindow("[1]fruit");
imshow("[1]fruit", apple);
Mat image = imread("baboon.jpg", 199);
Mat logo = imread("basketball.jpg");
namedWindow("[2]");
imshow("[2]", image);
namedWindow("[3]");
imshow("[3]", logo);
Mat imageROI;
imageROI = image(Rect(800, 350, logo.cols, logo.rows));
addWeighted(imageROI, 0.5, logo, 0.3, 0., imageROI);
namedWindow("[4]");
imshow("[4]", image);
imwrite("imwrite.jpg", image);
waitKey();
return 0;
}
问题解决了:
1.文件名字输出出错
2.解决1之后出现错误,断点逐步分析后
imageROI = image(Rect(800, 350, logo.cols, logo.rows));
这里出错,想不懂
换了一个方法
imageROI = image(Range(350,350+logo.rows),Range(800,800+logo.cols));
上述ROI需要调整图片大小,imageROI = image(Range(350, 350 + logo.rows), Range(800, 800 + logo.cols))
这段就是取X方向350至830(350+480),y方向取800至1440(800+640)
若是超出图片区域则会报错
故需要调整参数或者换图片
随手改了一个地方
Mat image = imread("1.jpg", 1);
Mat logo = imread("HappyFish.jpg");
我用的是VS2017版本,与学习书目出现版本差别带来的问题
然后没有报错了
总结:
1要看报错条码
2要看懂代码
3要考虑版本
最后贴上完整的代码
#include "pch.h"
#include
#include
#include
using namespace cv;
int main()
{
Mat apple = imread(“apple.jpg”);
namedWindow("[1]fruit");
imshow("[1]fruit", apple);
Mat image = imread("1.jpg", 1);
Mat logo = imread("HappyFish.jpg");
namedWindow("[2]");
imshow("[2]", image);
namedWindow("[3]");
imshow("[3]", logo);
Mat imageROI;
imageROI = image(Range(20,20+logo.rows),Range(30,30+logo.cols));
addWeighted(imageROI, 0.5, logo, 0.3, 0., imageROI);
namedWindow("[4]");
imshow("[4]", image);
imwrite("imwrite.jpg", image);
waitKey(6000);
return 0;
}