我有一类Matrix,我可以通过两个循环访问它,并在其中存储了我想要的所有值。
Matrix MatriceJ(width, height);
for (int i=0;i<width;i++)
{
for (int j=0;j<height;j++)
{
MatriceJ.at(i,j)=....
}
}
但是现在,我想将MatriceJ存储在IplImage *中,因为我可以将其不同的元素一个接一个地与其他IplImages相乘。
你能帮帮我吗?
答案 0 :(得分:1)
这应该让你开始。我假设数据是unsigned char和一个通道,请相应调整。
// Create the image
int depth = IPL_DEPTH_8U; // please adjust
int channels = 1; // please adjust
IplImage* img = cvCreateImage(cvSize(width,height), depth, channels);
// Now assume there is a matrix MatriceJ
// Copy the data to our newly created IplImage*
for (int i=0;i<height;i++)
{
uchar* ptr = (uchar*)(img->imageData + i*img->widthStep);
for (int j=0;j<width;j++)
{
ptr[j] = MatriceJ(i,j);
}
}