代码如下:
#include
#include
#include
using namespace std;
using namespace cv;
bool MultiChannelBlending();
int main(){
if (MultiChannelBlending()){
cout << endl << "尼玛真费劲!";
}
waitKey();
return 0;
}
bool MultiChannelBlending(){
Mat srcimage;
Mat logoimage;
vector channels;
Mat imageBlueChannel;
srcimage = imread("ray.jpg");
logoimage = imread("灰度图.jpg",0);
if (!srcimage.data){ printf("srcimage读取错误"); return false; };
if (!logoimage.data){ printf("logo读取错误"); return false; };
split(srcimage, channels);
imageBlueChannel = channels.at(0);
addWeighted(imageBlueChannel(Rect(200, 100, logoimage.cols, logoimage.rows)), 1.0,
logoimage, 0.5, 0, imageBlueChannel(Rect(200, 100, logoimage.cols, logoimage.rows)));
merge(srcimage, channels);
namedWindow("原画+logo蓝色通道");
imshow("原画+logo蓝色通道", srcimage);
return true;
}
小弟在练习opencv,但是运行后会出现这样的问题:0x1011B40E (opencv_world300.dll) (多通道图像混合.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x0020002C 时发生访问冲突。
百思不得其解,求助大神!