Opencv学习笔记(图片融合、图片显示、图片存储)

图片说明

下面是我的源代码
图片放在源文件目录下了
运行的时候就出错不知道怎么解决,opencv中的例子也时不时出现这种错误

#include "pch.h"
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

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 <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
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;

	

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值