Python၊ OpenCV နှင့် Pillow (PIL) ဖြင့် ပုံအရွယ်အစား (အနံနှင့် အမြင့်) ရယူခြင်း

စီးပွားရေးလုပ်ငန်း

Python တွင် OpenCV နှင့် Pillow (PIL) ကဲ့သို့သော ပုံများကို ကိုင်တွယ်ရန်အတွက် စာကြည့်တိုက်များစွာရှိသည်။ ဤအပိုင်းသည် ၎င်းတို့တစ်ခုစီအတွက် ပုံအရွယ်အစား (အနံနှင့် အမြင့်) ကို မည်သို့ရယူရမည်ကို ရှင်းပြထားသည်။

OpenCV အတွက် ပုံသဏ္ဍာန်နှင့် Pillow (PIL) အတွက် ပုံသဏ္ဍာန်ကို အသုံးပြု၍ tuple အဖြစ် ရုပ်ပုံအရွယ်အစား (အနံနှင့် အမြင့်) ကို သင်ရနိုင်သော်လည်း တစ်ခုချင်းစီ၏ အစီအစဥ်မှာ မတူညီကြောင်း သတိပြုပါ။

အောက်ပါအချက်အလက်များကို ဤနေရာတွင် ဖော်ပြပေးထားပါသည်။

  • OpenCV
    • ndarray.shape:ပုံအရွယ်အစား (အနံ၊ အမြင့်) ကိုရယူပါ။
      • အရောင်ပုံရိပ်များအတွက်
      • မီးခိုးရောင်စကေး (မိုနိုခရုမ်) ပုံများအတွက်
  • Pillow(PIL)
    • sizewidthheight:ပုံအရွယ်အစား (အနံ၊ အမြင့်) ကိုရယူပါ။

ပုံအရွယ်အစား (အရွယ်အစား) အစား ဖိုင်တစ်ခု၏ အရွယ်အစား (စွမ်းရည်) ကို မည်သို့ရယူရမည်ကို အောက်ပါဆောင်းပါးတွင် ကြည့်ပါ။

OpenCV:ndarray.shape:ပုံအရွယ်အစား (အနံ၊ အမြင့်) ကိုရယူပါ။

ပုံဖိုင်ကို OpenCV တွင် တင်သောအခါ၊ ၎င်းကို NumPy array ndarray အဖြစ် သတ်မှတ်ပြီး ndarray ၏ ပုံသဏ္ဍာန်ကို ညွှန်ပြသည့် ပုံ၏ အရွယ်အစား (အနံနှင့် အမြင့်) ကို ရရှိနိုင်သည်။

OpenCV တွင်သာမက ရုပ်ပုံဖိုင်တစ်ခုကို Pillow တွင်တင်ပြီး ndarray အဖြစ်ပြောင်းလဲသောအခါတွင်လည်း ndarray မှကိုယ်စားပြုသောပုံအရွယ်အစားကို ပုံသဏ္ဍာန်ဖြင့်ရရှိမည်ဖြစ်သည်။

အရောင်ပုံရိပ်များအတွက်

ရောင်စုံရုပ်ပုံများကိစ္စတွင်၊ အောက်ပါသုံးဖက်မြင် ndarray ကိုအသုံးပြုသည်။

  • အတန်း (အမြင့်)
  • အတန်း (အကျယ်)
  • အရောင်(၃)မျိုး၊

ပုံသဏ္ဍာန်သည် အထက်ပါဒြပ်စင်များ၏ tuple ဖြစ်သည်။

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

၎င်းကို ကိန်းရှင်တစ်ခုသို့ သတ်မှတ်ခြင်းမပြုဘဲ အညွှန်း (အညွှန်း) ဖြင့် သတ်မှတ်ခြင်းဖြင့်လည်း ၎င်းကို ယခင်အတိုင်း အသုံးပြုနိုင်သည်။

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

(width, height)
အကယ်၍ သင်သည် ဤ tuple ကို ရယူလိုပါက၊ သင်သည် အချပ်ကို အသုံးပြု၍ အောက်ပါတို့ကို ရေးနိုင်သည်- cv2.resize() စသည်ဖြင့် အကြောင်းပြချက်ကို အရွယ်အစားအလိုက် သတ်မှတ်လိုပါက၊ ဤအရာကို အသုံးပြုပါ။

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

မီးခိုးရောင်စကေး (မိုနိုခရုမ်) ပုံများအတွက်

မီးခိုးရောင်စကေး (မိုနိုခရုမ်) ရုပ်ပုံများတွင်၊ အောက်ဖော်ပြပါ နှစ်ဘက်မြင် 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

ဂုဏ်တော်များအဖြစ် အနံနှင့် အမြင့်ကို အသီးသီးရနိုင်သည်။
widthheight

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