Добијање величине слике (ширине и висине) помоћу Питхон-а, ОпенЦВ-а и јастука (ПИЛ)

Бусинесс

У Питхон-у постоји неколико библиотека за руковање сликама, као што су ОпенЦВ и Пиллов (ПИЛ). Овај одељак објашњава како да добијете величину слике (ширина и висина) за сваку од њих.

Величину слике (ширину и висину) можете добити као тупле користећи облик за ОпенЦВ и величину за јастук (ПИЛ), али имајте на уму да је редослед сваке од њих другачији.

Овде се налазе следеће информације.

  • OpenCV
    • ndarray.shape:Добијте величину слике (ширина, висина)
      • За слике у боји
      • За слике у нијансама сиве (монохромне).
  • Pillow(PIL)
    • size,width,height:Добијте величину слике (ширина, висина)

Погледајте следећи чланак о томе како да добијете величину (капацитет) датотеке уместо величине (величине) слике.

OpenCV:ndarray.shape:Добијте величину слике (ширина, висина)

Када се датотека слике учита у ОпенЦВ, она се третира као НумПи низ ндарраи, а величина слике (ширина и висина) се може добити из облика атрибута, који указује на облик ндарраиа.

Не само у ОпенЦВ-у, већ и када се датотека слике учита у Пиллов и конвертује у ндарраи, величина слике коју представља ндарраи добија се коришћењем облика.

За слике у боји

У случају слика у боји, користи се следећи тродимензионални ндарраи.

  • Висине реда)
  • Ред (ширина)
  • Боја (3)

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

import cv2

im = cv2.imread('data/src/lena.jpg')

print(type(im))
# <class 'numpy.ndarray'>

print(im.shape)
print(type(im.shape))
# (225, 400, 3)
# <class 'tuple'>

Да бисте доделили сваку вредност променљивој, распакујте тупле на следећи начин.

h, w, c = im.shape
print('width:  ', w)
print('height: ', h)
print('channel:', c)
# width:   400
# height:  225
# channel: 3

_
Када распакујете тупле, горе наведено може се конвенционално доделити као променљива за вредности које се након тога неће користити. На пример, ако се не користи број боја (број канала), користи се следеће.

h, w, _ = im.shape
print('width: ', w)
print('height:', h)
# width:  400
# height: 225

Такође се може користити какав јесте тако што ћете га навести индексом (индексом) без додељивања променљивој.

print('width: ', im.shape[1])
print('height:', im.shape[0])
# width:  400
# height: 225

(width, height)
Ако желите да добијете ову торбу, можете користити исечак и написати следеће: цв2.ресизе(), итд. Ако желите да наведете аргумент по величини, користите ово.

print(im.shape[1::-1])
# (400, 225)

За слике у нијансама сиве (монохромне).

У случају сивих (монохроматских) слика, користи се следећи дводимензионални ндарраи.

  • Висине реда)
  • Ред (ширина)

Облик ће бити овај тупле.

im_gray = cv2.imread('data/src/lena.jpg', cv2.IMREAD_GRAYSCALE)

print(im_gray.shape)
print(type(im_gray.shape))
# (225, 400)
# <class 'tuple'>

У основи исто као и за слике у боји.

h, w = im_gray.shape
print('width: ', w)
print('height:', h)
# width:  400
# height: 225

print('width: ', im_gray.shape[1])
print('height:', im_gray.shape[0])
# width:  400
# height: 225

Ако желите да доделите ширину и висину променљивим, то можете учинити на следећи начин, било да је слика у боји или у сивим тоновима.

h, w = im.shape[0], im.shape[1]
print('width: ', w)
print('height:', h)
# width:  400
# height: 225

(width, height)
Ако желите да добијете ову торбу, можете користити резове и написати је на следећи начин. Следећи стил писања се може користити било да је слика у боји или у сивим тоновима.

print(im_gray.shape[::-1])
print(im_gray.shape[1::-1])
# (400, 225)
# (400, 225)

Pillow(PIL):size, width, height:Добијте величину слике (ширина, висина)

Објекат слике добијен читањем слике помоћу јастука (ПИЛ) има следеће атрибуте.

  • size
  • width
  • height

Величина је следећа тупле.
(width, height)

from PIL import Image

im = Image.open('data/src/lena.jpg')

print(im.size)
print(type(im.size))
# (400, 225)
# <class 'tuple'>

w, h = im.size
print('width: ', w)
print('height:', h)
# width:  400
# height: 225

Такође можете добити ширину и висину као атрибуте.
width,height

print('width: ', im.width)
print('height:', im.height)
# width:  400
# height: 225

Исто важи и за слике у нијансама сиве (монохромне).

im_gray = Image.open('data/src/lena.jpg').convert('L')

print(im.size)
print('width: ', im.width)
print('height:', im.height)
# (400, 225)
# width:  400
# height: 225
Copied title and URL