读取csv数据并保存成图像

40 篇文章 1 订阅

int main(int argc, char* argv[])
{
	ifstream file("******.csv");
	string value;
	int i = 0;
	int j = 0;
	while (file.good())
	{
		getline(file, value, '\n');
		//cout << string(value, 0, value.length()) << endl;
		if (i > 0)
		{
			value.erase(0, 2);
			value.erase(value.length() - 9);
			//cout << string(value, 0, value.length()) << endl;
			char split = ' ';			
			std::vector<int> matrix(2304);
			int count1 = 0;
			for (int numPixel = 0; numPixel < 2304; numPixel++)
			{			
				char p[8] = { 0 };
				int f;
				for (int index = 0; index < value.length(); index++)
				{	
					f = value.find_first_of(split);
					if (index < f)
					{
						p[index] = value[index];
					}
					else
					{
						break;
					}
				}
			
				if (count1 == 2303)
				{
					for (int index = 0; index < value.length(); index++)
					{
					     p[index] = value[index];
					}
				}
				value.erase(0, f + 1);
				int pushData = atoi(p);  //这儿做的有些脑残
				//cout << "this is " << pushData << endl;
				matrix[count1] = pushData;
				count1++;
				//cout << "this is the " << numPixel << " th number\n";
			}

			int count = 0;
			Mat mat(48, 48, CV_8UC1, Scalar(100));
			for (int matGX = 0; matGX < 48; matGX++)
			{
				for (int matGY = 0; matGY < 48; matGY++)
				{				
						mat.at<char>(matGX, matGY) = matrix[count];
						//cout << mat.at<char>(matGX, matGY) << "fuzhi \n";
						count++;
						//cout << "count" << count << endl;
				}
			}

			namedWindow("Lena", CV_WINDOW_AUTOSIZE);
			imshow("Lena", mat);
			waitKey(33);
			char nameJpg[8];
			_itoa(j, nameJpg, 10);
			printf("nameJpg = %s\n", nameJpg);
			string nameJpgS = nameJpg;
			string path = "D:\\Facial\\";
			string imgPath = path + nameJpgS + ".jpg";
			imwrite(imgPath, mat);

			j++;
			//cout << matrix.size() << endl;	
			matrix.clear();
		}
		i++;
		cout << i << endl;
		if (i==3588)
		{
			break;
		}
	}
	return 0;
}

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python的Pillow库来实现,具体步骤如下: 1. 首先导入必要的库: ```python import csv from PIL import Image, ImageDraw ``` 2. 打开CSV文件并读取数据: ```python with open('data.csv', 'r') as file: reader = csv.reader(file) data = list(reader) ``` 3. 定义图片的尺寸、像素值和颜色: ```python width = 800 height = 600 pixel_size = 5 line_color = (0, 0, 0) ``` 4. 创建一个空白的图片并获取其画布: ```python image = Image.new('RGB', (width, height), (255, 255, 255)) draw = ImageDraw.Draw(image) ``` 5. 遍历CSV数据,绘制像素: ```python for i in range(len(data)): for j in range(len(data[i])): pixel_color = (int(data[i][j]), 0, 0) x = j * pixel_size y = i * pixel_size draw.rectangle((x, y, x+pixel_size, y+pixel_size), fill=pixel_color, outline=line_color) ``` 6. 保存图片: ```python image.save('pics/pic.png') ``` 完整代码如下: ```python import csv from PIL import Image, ImageDraw with open('data.csv', 'r') as file: reader = csv.reader(file) data = list(reader) width = 800 height = 600 pixel_size = 5 line_color = (0, 0, 0) image = Image.new('RGB', (width, height), (255, 255, 255)) draw = ImageDraw.Draw(image) for i in range(len(data)): for j in range(len(data[i])): pixel_color = (int(data[i][j]), 0, 0) x = j * pixel_size y = i * pixel_size draw.rectangle((x, y, x+pixel_size, y+pixel_size), fill=pixel_color, outline=line_color) image.save('pics/pic.png') ``` 注意,这里假设你已经在同级目录下创建了一个名为pics的文件夹,用于存储生图片。如果没有,可以手动创建或者在代码中添加创建目录的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值