visual-c++ - 如何使用 Visual C++ 创建 RGB 位图?

标签 visual-c++ image-processing opencv

如果给出了配置值,我将获得创建 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/

相关文章:

windows - 使用 Windows 事件日志的 C++ 项目

c++ - OpenGL GL_POLYGON 打印不正确

c++ - 使用直方图比较 c++ 匹配图像

multithreading - 如何使用单个端口处理多个逻辑数据流(Winsock)?

c++ - libpng 在 png_write_into 上崩溃(Windows 10,VS2013,自建,所有测试通过 ok)

java.ImageIO.write 完全损坏了 PNG 和/或 BMP,且数据不正确

python - 旋转图像后获取(x,y)点(python,openCV)

android - 获取错误 ld.exe : error: cannot find -lgnuSTL_shared in ndk on compiling tbb source files

c++ - 图像的均值、标准差、方差和偏度

c++ - 无法打开 HTTP 流 : Error opening file (. ./cap_ffmpeg_impl.hpp:529)