将图片转成C数组
图片有RGB三种分量,需要将三种分量共同提取出来,使用opencv和vs2017
首先读取图片,因为该图像为黑白图片,RGB分量相等,故只读写一种通道
#include<opencv2\opencv.hpp>
#include <ctype.h>
#include "iostream"
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat img, hsv;
ofstream outfile("a1.txt");
//此处更改图片地址
img = imread("c1.jpg");//读取图片
int h = 0;
for (int i = 0; i<img.rows; i++)
{
for (int j = 0; j<img.cols; j++)
{
//因为该图像为黑白图片,RGB分量相等,故只读写一种通道
char a[10];//定义char类型的数组
_itoa_s(img.at<Vec3b>(i, j)[0], a, 16);//该函数可以将int 类型的数据转成8 10 16进制的字符串 读取0通道分量
if (img.at<Vec3b>(i, j)[0] < 16) {//像素值小于16 16进制变为)0X0_
outfile << "0X00" << "," << "0X0" << a << "," << "0X0" << a << "," << "0X0" << a << " ";
}else{
outfile << "0X00" << "," << "0X" << a << "," << "0X" << a << "," << "0X" << a << " ";
}
h++;
if (h % 4 == 0) {
outfile << "\n";
}
}
}
}