2017-02-13 11 views
0

jpeg 또는 png와 같은 이미지 형식으로 .csv 파일에서 사용할 수있는 mnist 데이터 집합을 변환하고 싶습니다. 이미지 형식의 Mnist 데이터 집합 변환

from PIL import Image 
temp = mnist.train.images[0] 
temp=np.reshape(temp,(28,28)) 
temp=temp*255 
im = Image.fromarray(temp).convert('L') 
im.save("C:/Users/user/Desktop/ML/image/img.png") 

나는 이미지로 픽셀을 변환하는 위의 코드를 사용하고 나는 이미지로 변환 할 수 있어요하지만 문제는 이미지가 흑백 형식으로 저장된다. 그리고 문

im = Image.fromarray(temp).convert('L') 

내가 대신 'L'의 'RGB'를 사용하는 경우에 이미지가 검은 색 이미지로 저장됩니다. 그래서 어떻게 이미지를 컬러 형식으로 변환 할 수 있습니까?

답변

0

정수를 packed 바이트로 mongoDB에 저장하면 PIL을 사용하여 다음과 같은 방법으로 압축 된 바이트를 이미지로 변환 할 수 있습니다.

이 코드는 10 개의 테스트 이미지를 저장 한 다음 그 중 하나를 검색하여 .png으로 저장하는 방법을 보여줍니다.

>>> from pymongo import MongoClient 
>>> client = MongoClient() 
>>> db = client.test_database 
>>> import csv 
>>> from struct import pack 
>>> posts = db.posts 
>>> with open('mnist_test_10.csv') as mnist_csv: 
...  mnist_reader = csv.reader(mnist_csv) 
...  for row in mnist_reader: 
...   digit = row[0] 
...   pixels = pack((-1+len(row))*'B', *[int(_) for _ in row[1:]]) 
...   post = {'digit': digit, 'pixels': pixels} 
...   post_id = posts.insert_one(post).inserted_id 
...   
>>> record = posts.find_one({'digit':'7'}) 
>>> from PIL import Image 
>>> im = Image.frombytes('L',(28,28),record['pixels']) 
>>> im.save('temp.png') 
>>> 
+0

im.save ('temp.png')는 mongoDB 데이터베이스 또는 특정 폴더에 이미지를 저장합니다. 왜냐하면 이미지를 mongoDB에 저장하기를 원하기 때문입니다. – rajat188

+0

'post_id = posts.insert_one (post) .inserted_id'는 이미지 바이트를 mongodb에 저장합니다. 코드의'record ='이후부터는 바이트를 어떻게 검색하여 사용할 수 있는지 보여주는 데,이 경우에는 .png 이미지로 덮여 파일로 저장됩니다. –

+0

나는 이미지에 대해 당신이 염두에 두었던 목적에 따라 세부 사항 중 일부가 달라질 것이라고 언급 했어야했다. –