来自OpenCV新手的非常基本的问题.我只想创建一个图像,每个像素设置为0(黑色).我在main()函数中使用了以下代码:
IplImage* imgScribble = cvCreateImage(cvSize(320, 240), 8, 3);
Run Code Online (Sandbox Code Playgroud)
我得到的是一个坚实的灰色图像,而不是黑色图像.
提前致谢 !
小智 16
您使用的是哪个版本的opencv?对于Mat,
Mat image(320, 240, CV_8UC3, Scalar(0,0,0));
Run Code Online (Sandbox Code Playgroud)
我可以建议另外两个替代品:
IplImage* imgScribble = cvCreateImage(cvSize(320, 240), 8, 3);
// Here you can set any color
cvSet(imgScribble, cvScalar(0,0,0));
// Here only black
cvZero(imgScribble);
Run Code Online (Sandbox Code Playgroud)
致电给
cvCreateImage(cvSize(320, 240), 8, 3);
Run Code Online (Sandbox Code Playgroud)
在内存中创建图像,但我不认为它初始化数据。
你应该尝试这个来初始化:
step= imgScribble->widthStep;
data = (uchar *)imgScribble->imageData;
for(i=0;i<imgScribble->height;i++) for(j=0;j<img->width;j++) for(k=0;k<3;k++)
data[i*step+j*3+k]=0;
Run Code Online (Sandbox Code Playgroud)
(受此启发(示例 C 程序))