learnopencv-master


learnopencv-master
资源截图
代码片段和文件信息
//
//  alphaBlend.cpp
//  
//
//  Created by Sunita Nayak on 3/14/17.
//
//

#include 

using namespace cv;
using namespace std;

// Alpha blending using multiply and add functions
Mat& blend(Mat& alpha Mat& foreground Mat& background Mat& outImage)
{
    Mat fore back;
    multiply(alpha foreground fore);
    multiply(Scalar::all(1.0)-alpha background back);
    add(fore back outImage);
    
    return outImage;
}

// Alpha Blending using direct pointer access
Mat& alphaBlendDirectAccess(Mat& alpha Mat& foreground Mat& background Mat& outImage)
{

    int numberOfPixels = foreground.rows * foreground.cols * foreground.channels();
    
    float* fptr = reinterpret_cast(foreground.data);
    float* bptr = reinterpret_cast(background.data);
    float* aptr = reinterpret_cast(alpha.data);
    float* outImagePtr = reinterpret_cast(outImage.data);

    int ij;
    for ( j = 0; j < numberOfPixels; ++j outImagePtr++ fptr++ aptr++ bptr++)
    {
        *outImagePtr = (*fptr)*(*aptr) + (*bptr)*(1 - *aptr);
    }
    
    return outImage;
}


int main(int argc char** argv)
{
    
    // Read in the png foreground asset file that contains both rgb and alpha information
    Mat foreGroundImage = imread(“foreGroundAssetLarge.png“ -1);
    Mat bgra[4];
    split(foreGroundImage bgra);//split png foreground
    
    // Save the foregroung RGB content into a single Mat
    vector foregroundChannels;
    foregroundChannels.push_back(bgra[0]);
    foregroundChannels.push_back(bgra[1]);
    foregroundChannels.push_back(bgra[2]);
    Mat foreground = Mat::zeros(foreGroundImage.size() CV_8UC3);
    merge(foregroundChannels foreground);
    
    // Save the alpha information into a single Mat
    vector alphaChannels;
    alphaChannels.push_back(bgra[3]);
    alphaChannels.push_back(bgra[3]);
    alphaChannels.push_back(bgra[3]);
    Mat alpha = Mat::zeros(foreGroundImage.size() CV_8UC3);
    merge(alphaChannels alpha);
   
    // Read background image
    Mat background = imread(“backGroundLarge.jpg“);
    
    // Convert Mat to float data type
    foreground.convertTo(foreground CV_32FC3);
    background.convertTo(background CV_32FC3);
    alpha.convertTo(alpha CV_32FC3 1.0/255); // keeps the alpha values betwen 0 and 1

    // Number of iterations to average the performane over
    int numOfIterations = 1; //1000;
    
    // Alpha blending using functions multiply and add
    Mat outImage= Mat::zeros(foreground.size() foreground.type());
    double t = (double)getTickCount();
    for (int i=0; i        outImage = blend(alpha foreground background outImage);
    }
    t = ((double)getTickCount() - t)/getTickFrequency();
    cout << “Time for alpha blending using multiply & add function : “ << t*1000/numOfIterations << “ milliseconds“ << endl;

    // Alpha blending using direct Mat access with for loop
    outImage = Mat::zeros(foreground.size()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-20 16:20  learnopencv-master
     文件          10  2018-06-20 16:20  learnopencv-master.gitignore
     目录           0  2018-06-20 16:20  learnopencv-masterAlphaBlending
     文件         254  2018-06-20 16:20  learnopencv-masterAlphaBlendingREADME.md
     文件        3459  2018-06-20 16:20  learnopencv-masterAlphaBlendingalphaBlend.cpp
     文件         862  2018-06-20 16:20  learnopencv-masterAlphaBlendingalphaBlend.py
     文件      495797  2018-06-20 16:20  learnopencv-masterAlphaBlendingackGround.jpg
     文件      735761  2018-06-20 16:20  learnopencv-masterAlphaBlendingackGroundLarge.jpg
     文件     1718187  2018-06-20 16:20  learnopencv-masterAlphaBlendingforeGroundAsset.png
     文件     6353004  2018-06-20 16:20  learnopencv-masterAlphaBlendingforeGroundAssetLarge.png
     目录           0  2018-06-20 16:20  learnopencv-masterBlobDetector
     文件         251  2018-06-20 16:20  learnopencv-masterBlobDetectorREADME.md
     文件        1555  2018-06-20 16:20  learnopencv-masterBlobDetectorlob.cpp
     文件       16934  2018-06-20 16:20  learnopencv-masterBlobDetectorlob.jpg
     文件        1202  2018-06-20 16:20  learnopencv-masterBlobDetectorlob.py
     目录           0  2018-06-20 16:20  learnopencv-masterColorSpaces
     文件         239  2018-06-20 16:20  learnopencv-masterColorSpacesREADME.md
     文件        3281  2018-06-20 16:20  learnopencv-masterColorSpacesdataAnalysis.py
     目录           0  2018-06-20 16:20  learnopencv-masterColorSpacesimages
     文件       28785  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub00.jpg
     文件       20412  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub01.jpg
     文件       24052  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub02.jpg
     文件       24097  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub03.jpg
     文件       19618  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub04.jpg
     文件       27214  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub05.jpg
     文件       40374  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub06.jpg
     文件       33204  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub07.jpg
     文件       30914  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub08.jpg
     文件       29708  2018-06-20 16:20  learnopencv-masterColorSpacesimages
ub09.jpg
     文件        3577  2018-06-20 16:20  learnopencv-masterColorSpacesinteractiveColorDetect.cpp
     文件        2663  2018-06-20 16:20  learnopencv-masterColorSpacesinteractiveColorDetect.py
............此处省略2362个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)