如果给出了配置值,我将获得创建 RGB 位图图像的任务。
我被告知要使用 visual c++ 和 opencv 来创建图像。
由于我是 visual c++ 和 OpenCV 的新手,如何使用这些工具创建位图?有没有我可以使用的教程?
最佳答案
这是一个非常广泛的问题,因为我不知道您的图像数据来自哪里。您是否正在读取其他图像数据并将其保存为位图?你正在以某种方式改变它吗?如果不是,您是否只是以编程方式填充像素(即创建一个填充特定颜色的位图)。我暂时假设是后者。
// Create an empty 3 channel (RGB) image
IplImage* img = cvCreateImage(cvSize(640,480), IPL_DEPTH_8U, 3);
// Iterate over all of the rows of the image
for(int y = 0; y < 480; ++y)
{
// Iterate over all of the columns of each row
for(int x = 0; x < 640; ++x)
{
// Set each pixel to solid red
((uchar *)(img->imageData + y*img->widthStep))[x*img->nChannels + 0] = 0; // B
((uchar *)(img->imageData + y*img->widthStep))[x*img->nChannels + 1] = 0; // G
((uchar *)(img->imageData + y*img->widthStep))[x*img->nChannels + 2] = 255; // R
}
}
// Save the image data as a bitmap
cvSaveImage("ImAfraidICantLetYouDoThatDave.bmp", img);
// Clean up our memory
cvReleaseImage(&img);
我的所有这些都基于可用的代码:
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html
由于您是 visual studio 的新手,因此有一个合理的警告:在 Windows 下设置 opencv 并非易事。虽然那里有很多教程,所以我相信你能弄明白。我希望这对您有所帮助。
关于visual-c++ - 如何使用 Visual C++ 创建 RGB 位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217590/