opencv的遍历有4种方式:
最简单的便利方法如下:
Mat image(row,col,CV_16SC1);
for (int i = 0;i < row;i++)
for (int j = 0;j < col;j++)
{
depth.at<short>(i, j) = ;
//注意这里.at<>尖括号里的类型是16位图对应的short类型不是8位图对应的uchar类型
}
Mat类型
CV_<bit_depth>(S|U|F)C<number_of_channels>
1、bit_depth—位数—代表8bite,16bites,32bites,64bites 对应每个像素值变量类型为char、short、int、long
2、S|U|F
S代表signed int有符号整形
U代表unsigned int无符号整形
F代表float单精度浮点型
3、C<number_of_channels>—-代表—一张图片的通道数,比如:
1–灰度图片–grayImg—是–单通道图像
2–RGB彩色图像———是–3通道图像
3–带Alph通道的RGB图像–是–4通道图像
还有用指针遍历的方法也较常用:
同时需要注意使对应指针变量的类型和上面红色字体处对应
4、对16位图的写入,根据网上经验可以用imwrite 写成png格式