我已经计算出单应性,取出了透视变换.我能够在一个窗口中显示两个图像,但无法合并它们.这是我的示例图像 - >


我正在使用此代码的代码 - >
cv::warpPerspective(image2,warpresult2,homography,cv::Size(2*image2.cols,image2.rows));
Mat imgResult(image1.rows,2*image1.cols,image1.type());
Mat roiImgResult_Left = imgResult(Rect(0,0,image1.cols,image1.rows));
Mat roiImgResult_Right = imgResult(Rect(image1.cols,0,image2.cols,image2.rows));
Mat roiImg1 = image1(Rect(0,0,image1.cols,image1.rows));
Mat roiImg2 = warpresult2(Rect(0,0,image2.cols,image2.rows));
roiImg1.copyTo(roiImgResult_Left); //Img1 will be on the left of imgResult
roiImg2.copyTo(roiImgResult_Right); //Img2 will be on the right of imgResult
imshow("Finalimg",imgResult);
imwrite("C:\\OpenCv_Projects\\outputimage.jpg",imgResult);
cvWaitKey(0);
Run Code Online (Sandbox Code Playgroud)
我认为问题出在我给予roiImgResult_right的坐标中.
输出图像是 - >
如你所见,图像没有正确合并,右侧有黑色区域.如何删除它?
opencv image-processing computer-vision visual-c++ image-stitching
我正在一个项目中工作,我必须清楚地显示图像的某些部分,并使图像的其余部分模糊.模糊应该由滑块管理.意味着它可以增加或减少.最终结果图像应该在下面看起来相似.
在我的研究期间,我发现以下链接很有用
http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android/
http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android/
但上述链接中的问题是它们都会使图像模糊.不是图像的某些部分.
请提出一些解决方案来实现这一目标.提前致谢.

我基本上要做的是模糊图像,并将其与原始图像组合在一起,这样原始图像中的某些区域才会模糊(脸部应该模糊).
我的一般想法是掩盖原始Iwant中的部分模糊,然后将原始模糊为副本并再次将它们"合并"在一起.
在某种程度上,这也有效.
我的图片:
我的C++代码创建这些图像:
int main(void) {
cv::Mat srcImage = cv::imread(path);
srcImage.convertTo(srcImage, CV_32FC3, 1.0/255.0);
Mat _mask;
Mat img_gray;
cv::Scalar white = cv::Scalar(255, 255, 255);
cv::Scalar black = cv::Scalar(0, 0, 0);
cv::cvtColor(srcImage, img_gray, cv::COLOR_BGR2GRAY);
img_gray.convertTo(_mask, CV_32FC1);
// face
cv::circle(_mask, cv::Point(430, 350), 200, black, -1, 8, 0);
// eyes
cv::circle(_mask, cv::Point(502, 260), 27, white, -1, 8, 0);
cv::circle(_mask, cv::Point(390, 260), 27, white, -1, 8, 0);
// mouth
cv::ellipse(_mask, cv::Point(440, 390), cv::Point(60, 25), 0, 0, 360, white, -1, 8, …Run Code Online (Sandbox Code Playgroud)