用opencv C++把十六进制的RGB保存成图片
时间: 2023-06-07 16:08:06 浏览: 80
可以使用以下代码将十六进制的RGB保存成图片:
```
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 输入十六进制的RGB值
int hexValue = 0xFF0000; // 比如红色
// 将十六进制的RGB值转换为BGR值
int r = (hexValue >> 16) & 0xFF;
int g = (hexValue >> 8) & 0xFF;
int b = hexValue & 0xFF;
Scalar color = Scalar(b, g, r);
// 创建一个 Mat 图片对象
Mat img = Mat::zeros(Size(100, 100), CV_8UC3);
// 给图片填充颜色
rectangle(img, Rect(0, 0, 100, 100), color, -1);
// 保存图片
imwrite("red.jpg", img);
return 0;
}
```
注意:这里保存的图片格式是 jpg,所以图片名称应该以 .jpg 结尾。如果需要保存为其他格式,可以修改相应的后缀名称。
相关问题
用opencv C++把十六进制的RGB数组保存成图片
好的,这个问题可以回答。首先,我们可以将16进制的RGB拆分成R、G、B三个分量,然后使用OpenCV的Mat类,构造一个图像矩阵并设置像素值为这些分量。最后,使用imwrite函数将图像保存到本地即可。以下是示例代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 示例的RGB分量,可以根据实际需求修改
uchar data[] = { 0xFF, 0x00, 0x00, // 红色
0x00, 0xFF, 0x00, // 绿色
0x00, 0x00, 0xFF }; // 蓝色
Mat img(1, 3, CV_8UC3, data); // 构造图像
imwrite("output.png", img); // 保存为PNG格式图片
return 0;
}
```
opencv十六进制RGB数据保存成图片
可以使用cv2.imwrite()函数将十六进制的RGB数据保存成图片,具体代码如下:
import numpy as np
import cv2
# 将十六进制的RGB数据转换成numpy数组
hex_data = "FF0000FF00FF"
rgb_data = bytearray.fromhex(hex_data)
np_array = np.array(rgb_data, dtype=np.uint8).reshape(1, 1, -1)
# 保存图片
cv2.imwrite("image.png", np_array)