vec3b:表示每一个Vec3b对象中,可以存储3个char(字符型)数据,比如可以用这样的对象,去存储RGB图像中的一个像素点。typedef Vec<uchar, 3> Vec3b;
卷积
加权平均:各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。
1 void Sharpen(const Mat& myImage,Mat& Result) 2 { 3 CV_Assert(myImage.depth() == CV_8U); // 仅接受uchar图像 4 5 Result.create(myImage.size(),myImage.type()); 6 const int nChannels = myImage.channels(); 7 8 for(int j = 1 ; j < myImage.rows-1; ++j) 9 {10 const uchar* previous = myImage.ptr(j - 1);11 const uchar* current = myImage.ptr (j );12 const uchar* next = myImage.ptr (j + 1);13 14 uchar* output = Result.ptr (j);15 16 for(int i= nChannels;i < nChannels*(myImage.cols-1); ++i)17 {18 *output++ = saturate_cast (5*current[i]19 -current[i-nChannels] - current[i+nChannels] - previous[i] - next[i]);20 }21 }22 23 Result.row(0).setTo(Scalar(0));24 Result.row(Result.rows-1).setTo(Scalar(0));25 Result.col(0).setTo(Scalar(0));26 Result.col(Result.cols-1).setTo(Scalar(0));27 }
data:
核心函数LUT(The Core Function)
ptr与at的区别