标签:
代码片段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; } } } }
标签:
原文地址:http://www.cnblogs.com/bandy/p/4349913.html