相关疑难解决方法(0)

如何在opencv中合并两个图像?

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

图像2

我正在使用此代码的代码 - >

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

20
推荐指数
2
解决办法
3万
查看次数

如何在Android中模糊图像的某些部分?

我正在一个项目中工作,我必须清楚地显示图像的某些部分,并使图像的其余部分模糊.模糊应该由滑块管理.意味着它可以增加或减少.最终结果图像应该在下面看起来相似.

在我的研究期间,我发现以下链接很有用

  1. http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android/

  2. https://github.com/kikoso/android-stackblur

  3. http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android/

但上述链接中的问题是它们都会使图像模糊.不是图像的某些部分.

请提出一些解决方案来实现这一目标.提前致谢.

在此输入图像描述

android image-processing motion-blur android-canvas

6
推荐指数
1
解决办法
2742
查看次数

在opencv中将2个图像与透明蒙版组合在一起

我基本上要做的是模糊图像,并将其与原始图像组合在一起,这样原始图像中的某些区域才会模糊(脸部应该模糊).

我的一般想法是掩盖原始Iwant中的部分模糊,然后将原始模糊为副本并再次将它们"合并"在一起.

在某种程度上,这也有效.

我的图片:

(1)原件 原版的

(2)带有应模糊部分的原件 原始部件应该模糊

(3)模糊 模糊

我的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)

c++ opencv image-processing

3
推荐指数
1
解决办法
2995
查看次数