Више начина за спремање низова као слика (укључујући сципи.мисц.тоимаге)

Multiple Ways Save Arrays




Овај чланак је првобитно намеравао да напише функцију тоимаге и открио је да постоји много начина да се низ сачува као слика на Интернету, па су организовани заједно. Наведене су друге методе: Сачувајте низ Нумпи као слику
Матрица типа нумпи низа, како је записати на диск као слику? Учиниће било који формат слике (ПНГ, ЈПЕГ, БМП ...)The best solutionYou can use scipy.misc, the code is as follows: import scipy.misc scipy.misc.imsave('outfile.jpg', image_array) scipyОвде успут сципи.мисц.тоимаге функцију Оригинални облик функције је следећи: сципи.мисц.тоимаге (* аргс, ** квдс)Ова функција ће бити уклоњена у верзији сципи 1.2.0 и биће замењена Пиллов-овим Имаге.формарраи * аргс: улазни низ ** квдс: унете кључне речи
Функција је унос низа поља нумпи и изношење ПИЛ слике. Ову функцију можете користити само након инсталирања ПИЛ-а. Начин излазног ПИЛ дијаграма зависи од облика низа идруже,модуОве кључне речи.
За дводимензионалне низове, ако је пал валидна (Н, 3) бајт типа РГБ вредност чија је вредност између (0, 255), тада је начин = 'П', у супротном начин = 'Л', осим ако режим не даје излаз „Ф“ или „И“. У овом случају ће се створити низ бројева са покретном зарезом и / или целих бројева. За тродимензионалне низове параметар „цханнел_акис“ показује која димензија низа ће садржати податке о каналу. За 3-Д низове, ако је одређена димензија 3, подразумевани режим је РГБ или ИЦбЦр. Низ нумпи мора бити 2 или 3 димензије. Функција се може записати каосципи.мисц.тоимаге АРР Висока = 255 Ниска = 0 Цмин = Нема Цмак није никакав ПАЛ = Нема Режим = ниједан цханнел_акис = Нема

Изнад for i in range(20): image_array=mnist.train.images[i,:] image_array=image_array.reshape(28,28) filename=save_dir+'mnist_train_%d.jpg' % i scipy.misc.toimage(image_array,cmin=0.0,cmax=1.0).save(filename) Верзија нормализује све слике тако да мин (подаци) постају црни, а макс (подаци) постају бели. Ако би подаци требали бити тачни нивои сиве или тачни РГБ канали, рјешење је:

RGBA
  1. увозсципи.мисц
  2. сципи.мисц.тоимаге (низ_ слика, цмин =0.0, цмак = ...). саве ('оутфиле.јпг')

СциПи садржи неке практичне модуле за улаз и излаз. У наставку су представљена два од ових модула: ио и разно.Сачувај низ као слику
Будући да морамо да радимо на сликама и да бисмо за обављање операција морали да користимо објекте низа, врло је корисно да низ сачувамо директно као датотеку слике.
Функција имсаве () може се учитати из модула сципи.мисц. Да бисте сачували низ им у датотеку, можете користити следећу наредбунаправити:
фром сципи.мисц импорт имсаве имсаве ('тест.јпг', им)) Пример овога у мом програму је следећи: matplotlib

Друго решење

употреба ПИЛ



Дат је нумпи низ „А“:



opencv
  1. одПИЛувозСлика
  2. им = Имаге.фромарраи (А)
  3. им.саве ('иоур_филе.јпег')

Можете заменити 'јпег' са скоро било којим форматом који желите. За детаље о формату овде Детаљније



Трећа метода

Чисти Питхон (2 и 3), нема исечака кода за независне зависности.

Ова функција записује стиснуту праву боју (4 бајта по пикселу)

 ПНГ。

|_+_|
  1. деф врите_пнг(буф, ширина, висина):
  2. '' 'буф: морају бити бајтови или бајтраи у Питхон3.к,
  3. редован низ у Питхон2.к.
  4. ''
  5. увоззлиб, структ
  6. # преокрените редослед вертикалних линија и додајте нуле бајтове на почетку
  7. видтх_бите_4 = видтх *4
  8. рав_дата =б ''.придружити(б ' к00'+ буф [распон: распон + ширина_бајта_4]
  9. зараспонуопсег ((висина -1) * ширина_бајта_4,-1, - ширина_бајта_4))
  10. деф пнг_пацк(пнг_таг, подаци):
  11. цхунк_хеад = пнг_таг + подаци
  12. повратак(струцт.пацк ('! И', лен (подаци)) +
  13. цхунк_хеад +
  14. струцт.пацк ('! И',0кФФФФФФФФ& злиб.црц32 (цхунк_хеад)))
  15. повратак б ''.придружити([
  16. б ' к89ПНГ р н к1а н',
  17. пнг_пацк (б'ИХДР ', струцт.пацк ('! 2И5Б', ширина Висина,8,6,0,0,0)),
  18. пнг_пацк (б'ИДАТ ', злиб.цомпресс (рав_дата,9)),
  19. пнг_пацк (б'ИЕНД ',б '')])

... Подаци би требали бити записани директно у датотеку отворену у бинарном облику на следећи начин:



  1. подаци = врите_пнг (буф,64,64)
  2. саотворен ('ми_имаге.пнг','вб')каофд:
  3. фд.врите (подаци)

Четврта метода

употреба

|_+_|

  1. увозматплотлиб
  2. матплотлиб.имаге.имсаве ('наме.пнг', низ)

Односи се на матплотлиб 1.3.1, нисам сигуран да ли је доња верзија валидна. Документација:

  1. Аргументи:
  2. * фнаме *:
  3. Низ који садржи путању до имена датотеке,илиобјект сличан датотеци Питхон.
  4. Ако је * формат *је*Ниједан*и* фнаме *јениз, излаз
  5. форматјеодређенодекстензија имена датотеке.
  6. * арр *:
  7. Ан МкН (осветљеност), МкНк3 (РГБ)илиНиз МкНк4 (РГБА).

питхон, имаге, нумпи

Пета метода

Ако користите матплотлиб, можете и ово:

  1. увоз матплотлиб.пиплот као плт
  2. плт.показати(матрица)#Неедс до бити у ред,са ред
  3. плт.савефиг(назив документа)

Ово ће сачувати заплет (а не саму слику).

питхон, имаге, нумпи

Шеста метода

питхон

 ( хттп://доцс.опенцв.орг/трунк/доц/пи_туториалс/пи_туториалс.хтмл )。

  1. увозцв2
  2. увознумпикаона пример.
  3. цв2.имврите ('филенаме.пнг', нп.зерос ((10,10)))

Ова библиотека је корисна ако је потребно више обраде него уштеде.

референце