opencv中图像坐标系

行列与坐标系对应关系
行 → → Y
列 → → X
在Mat类型变量访问时下标是反着写的,即:按照(y, x)的关系形式访问Mat深拷贝
Mat data=img.clone();
- 用于将uchar*数据转化为Mat型数据,单通道
Mat uchar2mat(int height,int width,uchar* ch)
{
Mat ma(height, width, CV_32FC1);
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
ma.at<float>(i, j) = (float)ch[i*width + j];
}
}
return ma;
}
- Mat数据访问方法
Mat ma = imread("1.png", 0);
for (int i = 0; i < ma.size().height-1; i++)
{
uchar* data = ma.ptr<uchar>(i); //像素的指针
for (int j = 0; j < ma.size().width-1; j++)
{
cout << int(data[j])<<endl;
}
}
- 访问多通道mat方法
for (int i=0; i<height; i++)
{
for (int j=0; j<width; j++)
{
ma.at<vec3b>(i,j)[0]= 3.2f; // B 通道
ma.at<vec3b>(i,j)[1]= 3.2f; // G 通道
ma.at<vec3b>(i,j)[2]= 3.2f; // R 通道
}
}