Python тілінде OpenCV және Pillow (PIL) сияқты кескіндерді өңдеуге арналған бірнеше кітапхана бар. Бұл бөлімде олардың әрқайсысы үшін кескін өлшемін (ені мен биіктігі) қалай алуға болатыны түсіндіріледі.
Кескін өлшемін (ені мен биіктігі) OpenCV үшін пішінді және Pillow (PIL) өлшемін пайдаланып кортеж ретінде алуға болады, бірақ әрқайсысының реті әртүрлі екенін ескеріңіз.
Мұнда келесі ақпарат берілген.
- OpenCV
ndarray.shape
:Сурет өлшемін алыңыз (ені, биіктігі)- Түсті суреттер үшін
- Сұр реңкті (монохромды) кескіндер үшін
- Pillow(PIL)
size
,width
,height
:Сурет өлшемін алыңыз (ені, биіктігі)
Кескін өлшемі (өлшемі) орнына файлдың өлшемін (сыйымдылығын) алу жолы туралы келесі мақаланы қараңыз.
- Қатысты мақалалар:Python тілінде файлдың немесе каталогтың (қалтаның) өлшемін алу
OpenCV:ndarray.shape:Сурет өлшемін алыңыз (ені, биіктігі)
Кескін файлы OpenCV-де жүктелгенде, ол NumPy массивінің ndarrayы ретінде қарастырылады және кескіннің өлшемін (ені мен биіктігі) ndarray пішінін көрсететін атрибут пішінінен алуға болады.
Тек OpenCV-де ғана емес, сонымен қатар сурет файлы Pillow-қа жүктеліп, ndarray-ге түрлендірілсе, ndarray бейнеленген кескіннің өлшемі пішін көмегімен алынады.
Түсті суреттер үшін
Түсті кескіндер жағдайында келесі үш өлшемді ndarray қолданылады.
- Жол (биіктігі)
- Жол (ені)
- Түс (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)
Бұл кортежді алғыңыз келсе, slice пайдалана аласыз және келесіні жаза аласыз: cv2.resize(), т.б. Аргументті өлшем бойынша көрсеткіңіз келсе, мұны пайдаланыңыз.
print(im.shape[1::-1]) # (400, 225)
Сұр реңкті (монохромды) кескіндер үшін
Сұр реңкті (монохромды) кескіндер жағдайында келесі екі өлшемді ndarray қолданылады.
- Жол (биіктігі)
- Жол (ені)
Пішін мына кортеж болады.
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:Сурет өлшемін алыңыз (ені, биіктігі)
Pillow(PIL) көмегімен кескінді оқу арқылы алынған кескін нысанының келесі атрибуттары бар.
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
Python тілінде OpenCV және Pillow (PIL) сияқты кескіндерді өңдеуге арналған бірнеше кітапхана бар. Бұл бөлімде олардың әрқайсысы үшін кескін өлшемін (ені мен биіктігі) қалай алуға болатыны түсіндіріледі.
Кескін өлшемін (ені мен биіктігі) OpenCV үшін пішінді және Pillow (PIL) өлшемін пайдаланып кортеж ретінде алуға болады, бірақ әрқайсысының реті әртүрлі екенін ескеріңіз.
Мұнда келесі ақпарат берілген.
- OpenCV
ndarray.shape
:Сурет өлшемін алыңыз (ені, биіктігі)- Түсті суреттер үшін
- Сұр реңкті (монохромды) кескіндер үшін
- Pillow(PIL)
size
,width
,height
:Сурет өлшемін алыңыз (ені, биіктігі)
Кескін өлшемі (өлшемі) орнына файлдың өлшемін (сыйымдылығын) алу жолы туралы келесі мақаланы қараңыз.
- Қатысты мақалалар:Python тілінде файлдың немесе каталогтың (қалтаның) өлшемін алу
OpenCV:ndarray.shape:Сурет өлшемін алыңыз (ені, биіктігі)
Кескін файлы OpenCV-де жүктелгенде, ол NumPy массивінің ndarrayы ретінде қарастырылады және кескіннің өлшемін (ені мен биіктігі) ndarray пішінін көрсететін атрибут пішінінен алуға болады.
Тек OpenCV-де ғана емес, сонымен қатар сурет файлы Pillow-қа жүктеліп, ndarray-ге түрлендірілсе, ndarray бейнеленген кескіннің өлшемі пішін көмегімен алынады.
Түсті суреттер үшін
Түсті кескіндер жағдайында келесі үш өлшемді ndarray қолданылады.
- Жол (биіктігі)
- Жол (ені)
- Түс (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)
Бұл кортежді алғыңыз келсе, slice пайдалана аласыз және келесіні жаза аласыз: cv2.resize(), т.б. Аргументті өлшем бойынша көрсеткіңіз келсе, мұны пайдаланыңыз.
print(im.shape[1::-1]) # (400, 225)
Сұр реңкті (монохромды) кескіндер үшін
Сұр реңкті (монохромды) кескіндер жағдайында келесі екі өлшемді ndarray қолданылады.
- Жол (биіктігі)
- Жол (ені)
Пішін мына кортеж болады.
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:Сурет өлшемін алыңыз (ені, биіктігі)
Pillow(PIL) көмегімен кескінді оқу арқылы алынған кескін нысанының келесі атрибуттары бар.
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