cv::Mat image = cv::Mat::ones(pixelHeight, pixelWidth, CV_8UC3) * 255;为什么生成蓝色的,不是白底的怎么改为白色的
时间: 2024-02-28 14:54:59 浏览: 73
将不同底色的照片换成白底
`cv::Mat::ones(pixelHeight, pixelWidth, CV_8UC3) * 255` 的作用是生成一个每个像素值都为 255 的 `CV_8UC3` 格式的图像,也就是一个全白图像。但是在 `putText` 函数中,`cv::Scalar(0, 0, 0)` 表示字体颜色为黑色。因此,在生成图像时会将黑色字体放在全白图像上,生成的图像会是黑底白字的。
要生成白底黑字的图像,只需将 `cv::Scalar(0, 0, 0)` 更改为 `cv::Scalar(255, 255, 255)`,表示字体颜色为白色即可。最终的代码如下:
```
cv::Mat image = cv::Mat::ones(pixelHeight, pixelWidth, CV_8UC3) * 255;
int tmp = 57;
for(int i = 0; i < 4; i++) {
cv::putText(image, nativeText, cv::Point((int)x, (int)y + i * 57), cv::FONT_HERSHEY_SIMPLEX, size,
cv::Scalar(255, 255, 255), 3, cv::LINE_AA,false);
}
```
阅读全文