マトリックスをチャネルから3列の単一チャネルマトリックスに再形成するopencvコードを書いています。
uchar* ptrimage=(uchar*)image->imageData;
uchar* ptrZ=(uchar*)Z->imageData;
for (int i=0;i<image->height;i++)
{
for(int j=0;j<image->width;j++)
{
for(int k=0;k<image->nChannels;k++)
{
cout<<i<<" "<<j<<" "<<" "<<k<<endl;
(ptrZ+(j+i*image->width)*Z->widthStep)[k]=(ptrimage+i*image->widthStep)[3*j+k];
}
}
Z は取得したい新しいマトリックスで、その高さは image->width*imgae->height であり、幅は 3 です。これは、j の 7 ~ 8 回の反復後に壊れます。エラーを見つけるのを手伝ってください。