Python, OpenCV සහ Pillow(PIL) සමඟ රූපයේ ප්‍රමාණය (පළල සහ උස) ලබා ගැනීම

ව්යාපාරික

Python හි OpenCV සහ Pillow (PIL) වැනි පින්තූර හැසිරවීම සඳහා පුස්තකාල කිහිපයක් තිබේ. මෙම කොටසේ එක් එක් රූපයේ ප්‍රමාණය (පළල සහ උස) ලබා ගන්නේ කෙසේද යන්න පැහැදිලි කරයි.

ඔබට රූපයේ ප්‍රමාණය (පළල සහ උස) OpenCV සඳහා හැඩය සහ කොට්ටය (PIL) සඳහා ප්‍රමාණය භාවිතා කරමින් ටප්ලයක් ලෙස ලබා ගත හැක, නමුත් එක් එක් අනුපිළිවෙල වෙනස් බව සලකන්න.

පහත තොරතුරු මෙහි දක්වා ඇත.

  • OpenCV
    • ndarray.shape:රූපයේ ප්‍රමාණය ලබා ගන්න (පළල, උස)
      • වර්ණ රූප සඳහා
      • අළු පරිමාණ (ඒකවර්ණ) රූප සඳහා
  • Pillow(PIL)
    • size,width,height:රූපයේ ප්‍රමාණය ලබා ගන්න (පළල, උස)

රූපයේ ප්‍රමාණය (ප්‍රමාණය) වෙනුවට ගොනුවක ප්‍රමාණය (ධාරිතාව) ලබා ගන්නේ කෙසේද යන්න පහත ලිපිය බලන්න.

OpenCV:ndarray.shape:රූපයේ ප්‍රමාණය ලබා ගන්න (පළල, උස)

OpenCV හි රූප ගොනුවක් පූරණය කළ විට, එය NumPy array ndarray ලෙස සලකනු ලබන අතර, රූපයේ ප්‍රමාණය (පළල සහ උස) attribute හැඩයෙන් ලබා ගත හැක, එය ndarray හි හැඩය පෙන්නුම් කරයි.

OpenCV වල විතරක් නෙවෙයි, Pillow එකේ image file එකක් load කරලා ndarray එකක් බවට පත් කරනකොටත් ndarray එකෙන් නියෝජනය කරන image එකේ size එක shape එක පාවිච්චි කරලා ලබාගන්නවා.

වර්ණ රූප සඳහා

වර්ණ රූප සම්බන්ධයෙන්, පහත ත්‍රිමාන 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)
ඔබට මෙම tuple ලබා ගැනීමට අවශ්‍ය නම්, ඔබට ස්ලයිස් භාවිතා කර පහත සඳහන් දෑ ලිවිය හැක: cv2.resize(), ආදිය. ඔබට තර්කය ප්‍රමාණයෙන් නියම කිරීමට අවශ්‍ය නම්, මෙය භාවිතා කරන්න.

print(im.shape[1::-1])
# (400, 225)
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)
ඔබට මෙම 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

ප්‍රමාණය පහත ටියුපල් වේ.
(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 සඳහා හැඩය සහ කොට්ටය (PIL) සඳහා ප්‍රමාණය භාවිතා කරමින් ටප්ලයක් ලෙස ලබා ගත හැක, නමුත් එක් එක් අනුපිළිවෙල වෙනස් බව සලකන්න.

පහත තොරතුරු මෙහි දක්වා ඇත.

  • OpenCV
    • ndarray.shape:රූපයේ ප්‍රමාණය ලබා ගන්න (පළල, උස)
      • වර්ණ රූප සඳහා
      • අළු පරිමාණ (ඒකවර්ණ) රූප සඳහා
  • Pillow(PIL)
    • size,width,height:රූපයේ ප්‍රමාණය ලබා ගන්න (පළල, උස)

රූපයේ ප්‍රමාණය (ප්‍රමාණය) වෙනුවට ගොනුවක ප්‍රමාණය (ධාරිතාව) ලබා ගන්නේ කෙසේද යන්න පහත ලිපිය බලන්න.

OpenCV:ndarray.shape:රූපයේ ප්‍රමාණය ලබා ගන්න (පළල, උස)

OpenCV හි රූප ගොනුවක් පූරණය කළ විට, එය NumPy array ndarray ලෙස සලකනු ලබන අතර, රූපයේ ප්‍රමාණය (පළල සහ උස) attribute හැඩයෙන් ලබා ගත හැක, එය ndarray හි හැඩය පෙන්නුම් කරයි.

OpenCV වල විතරක් නෙවෙයි, Pillow එකේ image file එකක් load කරලා ndarray එකක් බවට පත් කරනකොටත් ndarray එකෙන් නියෝජනය කරන image එකේ size එක shape එක පාවිච්චි කරලා ලබාගන්නවා.

වර්ණ රූප සඳහා

වර්ණ රූප සම්බන්ධයෙන්, පහත ත්‍රිමාන 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)
ඔබට මෙම tuple ලබා ගැනීමට අවශ්‍ය නම්, ඔබට ස්ලයිස් භාවිතා කර පහත සඳහන් දෑ ලිවිය හැක: 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)
ඔබට මෙම 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

ප්‍රමාණය පහත ටියුපල් වේ.
(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

අළු පරිමාණ (ඒකවර්ණ) රූප සඳහාද එයම වේ.

Copied title and URL