標籤:
程式碼片段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; } } } }
openCV C++寫法