zoukankan      html  css  js  c++  java
  • openCV C++ 代码笔记

    代码片段1

    cv_contourMask_step_tmp=cv_contourMask.clone();
        cv::Mat maskImage;
        UIImageToMat(pathimg, maskImage,true);
       // m_UIImageToMat1(pathimg, maskImage);
        //大图叠加小区域
        cv::Mat addrect(cv_contourMask,cv::Rect(offset.x,offset.y,pathimg.size.width,pathimg.size.height));
        //maskImage.copyTo(addrect);
        //dst = alpha*src1 + beta*src2 + gamma
        if (self.isErase) {
           // cv::addWeighted(addrect, 0, maskImage, 0, 0, addrect);
            cv::subtract(addrect, maskImage, addrect);
        }
        else
        {
            //dst = alpha*src1 + beta*src2 + gamma
            cv::addWeighted(addrect, 1, maskImage, 1, 0, addrect);
        }

    代码片段2

    //二值
            cv::threshold(tempImage,tempImage,thresh,255,cv::THRESH_BINARY);
             int c= tempImage.channels();
            //UIImage *img2=MatToUIImage(tempImage);//调试显示图片
            //根据中心点的颜色值来确定有效的位置
            int tw=tempImage.cols;
            int th=tempImage.rows;
            int center=tempImage.at<uchar>(th/2,th/2);
            
            int x0=tw/2;
            int y0=th/2;
            
           
            if(center==0)
            {
                //中心点为黑色,翻转图片颜色
                for(int i=0;i<tw;i++)
                  {
                    for(int j=0;j<th;j++)
                     {
                         if (tempImage.at<uchar>(j,i)==0) {
                             tempImage.at<uchar>(j,i)=255;
                    
                         }
                         else
                         {
                            tempImage.at<uchar>(j,i)=0;
      
    
                         }
                    }
                }
            }

     2张4同道图片叠加:

    void MergeImage(Mat bgImg,Mat fgImg,Mat& dstImg)
    {
        dstImg=bgImg.clone();
        printf("%d",bgImg.channels());
        printf("%d",fgImg.channels());
        for (int y = 0; y < fgImg.rows; y++)
        {
    
            const cv::Vec4b* fgImg_pixel = fgImg.ptr<cv::Vec4b>(y);
            cv::Vec4b* dstImg_pixel = dstImg.ptr<cv::Vec4b>(y);
            for (int x = 0; x < fgImg.cols; x++,++fgImg_pixel, ++dstImg_pixel)
            {
                double alpha = (*fgImg_pixel).val[3]/255.0;
                (*dstImg_pixel).val[0]=(*fgImg_pixel).val[0]*alpha+(*dstImg_pixel).val[0]*(1-alpha);
                (*dstImg_pixel).val[1]=(*fgImg_pixel).val[1]*alpha+(*dstImg_pixel).val[1]*(1-alpha);
                (*dstImg_pixel).val[2]=(*fgImg_pixel).val[2]*alpha+(*dstImg_pixel).val[2]*(1-alpha);
             
            }
        }
        
    
    }
  • 相关阅读:
    IE 8兼容:<meta http-equiv="X-UA-Compatible" content="IE=edge" /> X-UA-Compatible的解释
    点击下载,下载图片
    修改输入框placeholder文字默认颜色-webkit-input-placeholder
    rest_framework目录
    Django目录
    python基础内容目录
    hadoop伪分布式搭建
    通过ldap验证svn服务
    LDAP目录服务
    Python基础之字符串拼接简单介绍
  • 原文地址:https://www.cnblogs.com/bandy/p/4349913.html
Copyright © 2011-2022 走看看