នៅក្នុង Python មានបណ្ណាល័យជាច្រើនសម្រាប់គ្រប់គ្រងរូបភាព ដូចជា OpenCV និង Pillow (PIL)។ ផ្នែកនេះពន្យល់ពីរបៀបដើម្បីទទួលបានទំហំរូបភាព (ទទឹង និងកម្ពស់) សម្រាប់ពួកវានីមួយៗ។
អ្នកអាចទទួលបានទំហំរូបភាព (ទទឹង និងកម្ពស់) ជា tuple ដោយប្រើរូបរាងសម្រាប់ OpenCV និងទំហំសម្រាប់ Pillow (PIL) ប៉ុន្តែចំណាំថាលំដាប់នីមួយៗគឺខុសគ្នា។
ព័ត៌មានខាងក្រោមត្រូវបានផ្តល់ជូននៅទីនេះ។
- OpenCV
ndarray.shape
:ទទួលបានទំហំរូបភាព (ទទឹង កម្ពស់)- សម្រាប់រូបភាពពណ៌
- សម្រាប់រូបភាពពណ៌ប្រផេះ (monochrome)
- Pillow(PIL)
size
,width
,height
:ទទួលបានទំហំរូបភាព (ទទឹង កម្ពស់)
សូមមើលអត្ថបទខាងក្រោមអំពីរបៀបទទួលបានទំហំ (សមត្ថភាព) នៃឯកសារជំនួសឱ្យទំហំរូបភាព (ទំហំ) ។
- អត្ថបទដែលទាក់ទង:ការទទួលបានទំហំនៃឯកសារឬថត (ថតឯកសារ) នៅក្នុង Python
OpenCV:ndarray.shape:ទទួលបានទំហំរូបភាព (ទទឹង កម្ពស់)
នៅពេលដែលឯកសាររូបភាពត្រូវបានផ្ទុកនៅក្នុង OpenCV វាត្រូវបានចាត់ទុកជា NumPy array ndarray ហើយទំហំរូបភាព (ទទឹង និងកម្ពស់) អាចទទួលបានពី attribute shape ដែលបង្ហាញពីរូបរាងរបស់ 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'>
ដើម្បីផ្តល់តម្លៃនីមួយៗទៅអថេរ សូមស្រាយ tuple ដូចខាងក្រោម។
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
នៅពេលវេចខ្ចប់ tuple ខាងលើអាចត្រូវបានកំណត់ជាធម្មតាជាអថេរសម្រាប់តម្លៃដែលនឹងមិនត្រូវបានប្រើប្រាស់បន្ទាប់ពីនោះ។ ឧទាហរណ៍ ប្រសិនបើចំនួនពណ៌ (ចំនួនឆានែល) មិនត្រូវបានប្រើទេ ខាងក្រោមនេះត្រូវបានប្រើប្រាស់។
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
វាក៏អាចត្រូវបានប្រើដូចជាដែរដោយបញ្ជាក់វាដោយលិបិក្រម (index) ដោយមិនកំណត់វាទៅអថេរ។
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
ប្រសិនបើអ្នកចង់ទទួលបាន tuple នេះ អ្នកអាចប្រើ slice ហើយសរសេរដូចខាងក្រោម៖ cv2.resize() ។ល។ ប្រសិនបើអ្នកចង់បញ្ជាក់អាគុយម៉ង់តាមទំហំ សូមប្រើវា។
print(im.shape[1::-1]) # (400, 225)
សម្រាប់រូបភាពពណ៌ប្រផេះ (monochrome)
ក្នុងករណីនៃមាត្រដ្ឋានប្រផេះ (ម៉ូណូក្រូម) រូបភាព ndarray ពីរវិមាត្រខាងក្រោមត្រូវបានប្រើ។
- ជួរ (កម្ពស់)
- ជួរ (ទទឹង)
រូបរាងនឹងជា tuple នេះ។
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)
ប្រសិនបើអ្នកចង់ទទួលបាន tuple នេះអ្នកអាចប្រើចំណិតហើយសរសេរវាដូចខាងក្រោម។ រចនាប័ទ្មសរសេរខាងក្រោមអាចត្រូវបានប្រើមិនថារូបភាពមានពណ៌ ឬមាត្រដ្ឋានប្រផេះទេ។
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
ទំហំគឺ tuple ខាងក្រោម។(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
ដូចគ្នាដែរចំពោះរូបភាពដែលមានមាត្រដ្ឋានប្រផេះ (monochrome)។
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)។ ផ្នែកនេះពន្យល់ពីរបៀបដើម្បីទទួលបានទំហំរូបភាព (ទទឹង និងកម្ពស់) សម្រាប់ពួកវានីមួយៗ។
អ្នកអាចទទួលបានទំហំរូបភាព (ទទឹង និងកម្ពស់) ជា tuple ដោយប្រើរូបរាងសម្រាប់ OpenCV និងទំហំសម្រាប់ Pillow (PIL) ប៉ុន្តែចំណាំថាលំដាប់នីមួយៗគឺខុសគ្នា។
ព័ត៌មានខាងក្រោមត្រូវបានផ្តល់ជូននៅទីនេះ។
- OpenCV
ndarray.shape
:ទទួលបានទំហំរូបភាព (ទទឹង កម្ពស់)- សម្រាប់រូបភាពពណ៌
- សម្រាប់រូបភាពពណ៌ប្រផេះ (monochrome)
- Pillow(PIL)
size
,width
,height
:ទទួលបានទំហំរូបភាព (ទទឹង កម្ពស់)
សូមមើលអត្ថបទខាងក្រោមអំពីរបៀបទទួលបានទំហំ (សមត្ថភាព) នៃឯកសារជំនួសឱ្យទំហំរូបភាព (ទំហំ) ។
- អត្ថបទដែលទាក់ទង:ការទទួលបានទំហំនៃឯកសារឬថត (ថតឯកសារ) នៅក្នុង Python
OpenCV:ndarray.shape:ទទួលបានទំហំរូបភាព (ទទឹង កម្ពស់)
នៅពេលដែលឯកសាររូបភាពត្រូវបានផ្ទុកនៅក្នុង OpenCV វាត្រូវបានចាត់ទុកជា NumPy array ndarray ហើយទំហំរូបភាព (ទទឹង និងកម្ពស់) អាចទទួលបានពី attribute shape ដែលបង្ហាញពីរូបរាងរបស់ 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'>
ដើម្បីផ្តល់តម្លៃនីមួយៗទៅអថេរ សូមស្រាយ tuple ដូចខាងក្រោម។
h, w, c = im.shape print('width: ', w) print('height: ', h) print('channel:', c) # width: 400 # height: 225 # channel: 3
_
នៅពេលវេចខ្ចប់ tuple ខាងលើអាចត្រូវបានកំណត់ជាធម្មតាជាអថេរសម្រាប់តម្លៃដែលនឹងមិនត្រូវបានប្រើប្រាស់បន្ទាប់ពីនោះ។ ឧទាហរណ៍ ប្រសិនបើចំនួនពណ៌ (ចំនួនឆានែល) មិនត្រូវបានប្រើទេ ខាងក្រោមនេះត្រូវបានប្រើប្រាស់។
h, w, _ = im.shape print('width: ', w) print('height:', h) # width: 400 # height: 225
វាក៏អាចត្រូវបានប្រើដូចជាដែរដោយបញ្ជាក់វាដោយលិបិក្រម (index) ដោយមិនកំណត់វាទៅអថេរ។
print('width: ', im.shape[1]) print('height:', im.shape[0]) # width: 400 # height: 225
(width, height)
ប្រសិនបើអ្នកចង់ទទួលបាន tuple នេះ អ្នកអាចប្រើ slice ហើយសរសេរដូចខាងក្រោម៖ cv2.resize() ។ល។ ប្រសិនបើអ្នកចង់បញ្ជាក់អាគុយម៉ង់តាមទំហំ សូមប្រើវា។
print(im.shape[1::-1]) # (400, 225)
សម្រាប់រូបភាពពណ៌ប្រផេះ (monochrome)
ក្នុងករណីនៃមាត្រដ្ឋានប្រផេះ (ម៉ូណូក្រូម) រូបភាព ndarray ពីរវិមាត្រខាងក្រោមត្រូវបានប្រើ។
- ជួរ (កម្ពស់)
- ជួរ (ទទឹង)
រូបរាងនឹងជា tuple នេះ។
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)
ប្រសិនបើអ្នកចង់ទទួលបាន tuple នេះអ្នកអាចប្រើចំណិតហើយសរសេរវាដូចខាងក្រោម។ រចនាប័ទ្មសរសេរខាងក្រោមអាចត្រូវបានប្រើមិនថារូបភាពមានពណ៌ ឬមាត្រដ្ឋានប្រផេះទេ។
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
ទំហំគឺ tuple ខាងក្រោម។(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
ដូចគ្នាដែរចំពោះរូបភាពដែលមានមាត្រដ្ឋានប្រផេះ (monochrome)។
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