OpenCV学习笔记——疑问
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<uchar>(j - 1); 11 const uchar* current = myImage.ptr<uchar>(j ); 12 const uchar* next = myImage.ptr<uchar>(j + 1); 13 14 uchar* output = Result.ptr<uchar>(j); 15 16 for(int i= nChannels;i < nChannels*(myImage.cols-1); ++i) 17 { 18 *output++ = saturate_cast<uchar>(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的区别