核心代码:
Mat x = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0),
filter2D(t1, t2, -1, x, Point(-1, -1), 0, BORDER_DEFAULT);
const uchar* pre = t1.ptr<uchar>(i-1);
const uchar* now = t1.ptr<uchar>(i);
const uchar* next = t1.ptr<uchar>(i+1);
uchar* tt = t3.ptr<uchar>(i);
for (int j = cha; j< 3*t1.cols-cha; j++) {
tt[j] = saturate_cast<uchar>(5 * now[j] - now[j - cha] - now[j + cha] - pre[j] - next[j]);
}
1,图像在计算机中的存储模式如下:
先看垫的存储形式.MAT和Matlab的里的数组格式有点像,但一般是二维向量,如果是灰度图,一般存放<UCHAR>类型;如果是RGB彩色图,存放<Vec3b>类型。
单通道灰度图数据存放格式: