複製和改變每一個pixel的顏色
#include
#include
#include
#include
#include
using namespace cv ;
using namespace std ;
cv::Mat matControl_3( cv::Mat srcMat )
{
//複製和改變每一個pixel的顏色
cv::Mat dstMat( srcMat.rows, srcMat.cols, srcMat.type() );
int nChannels = srcMat.channels();
int nRows = srcMat.rows;
int nCols = srcMat.cols * nChannels;
int nStep = srcMat.step;
uchar* srcData= srcMat.data;
uchar* dstData = dstMat.data;
for( int j = 0; j < nRows; j++ ){
for( int i = 0; i < nCols; i++ ) {
if(i%3==2){ //0藍 1綠 2紅
int t1=*(srcData+i);
t1=t1*3;
if(t1>255) t1=255;
*(dstData+i) =t1 ;
}else{
*(dstData+i) = *(srcData+i);
}
}
srcData += nStep;
dstData += nStep;
}
return dstMat;
}
int main() {
cv::Mat image = cv::imread(“/Users/powenko/Desktop/1.png”);
if(image.data!=NULL){
cv::namedWindow(“Image”) ;
cv::imshow(“Image”, image) ;
Mat image2=matControl_3(image);
cv::imshow(“mat”, image2) ;
cv::waitKey() ;
}
return 0;
}