Python, OpenCV və Pillow (PIL) ilə şəkil ölçüsünü (en və hündürlük) əldə etmək

Biznes

Python-da OpenCV və Pillow (PIL) kimi şəkillərlə işləmək üçün bir neçə kitabxana var. Bu bölmə onların hər biri üçün şəkil ölçüsünü (en və hündürlük) necə əldə edəcəyinizi izah edir.

OpenCV üçün forma və Yastıq üçün ölçüdən (PIL) istifadə edərək şəkil ölçüsünü (en və hündürlüyü) tuple kimi əldə edə bilərsiniz, lakin nəzərə alın ki, hər birinin sırası fərqlidir.

Aşağıdakı məlumatlar burada verilir.

  • OpenCV
    • ndarray.shape:Şəklin ölçüsünü əldə edin (en, hündürlük)
      • Rəngli şəkillər üçün
      • Boz tonlu (monoxrom) şəkillər üçün
  • Pillow(PIL)
    • size,width,height:Şəklin ölçüsünü əldə edin (en, hündürlük)

Şəkil ölçüsü (ölçüsü) əvəzinə faylın ölçüsünü (tutumunu) necə əldə etmək barədə aşağıdakı məqaləyə baxın.

OpenCV:ndarray.shape:Şəklin ölçüsünü əldə edin (en, hündürlük)

OpenCV-də şəkil faylı yükləndikdə ona NumPy massivi ndarray kimi baxılır və şəklin ölçüsünü (en və hündürlük) ndarrayın formasını göstərən atribut şəklindən əldə etmək olar.

Təkcə OpenCV-də deyil, həm də şəkil faylı Pillow-a yükləndikdə və ndarray-a çevrildikdə, ndarray ilə təmsil olunan şəklin ölçüsü formadan istifadə etməklə əldə edilir.

Rəngli şəkillər üçün

Rəngli təsvirlər vəziyyətində aşağıdakı üçölçülü ndarray istifadə olunur.

  • Sıra (hündürlük)
  • Sıra (en)
  • Rəng (3)

forma yuxarıdakı elementlərin bir dəstidir.

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ər bir dəyəri dəyişənə təyin etmək üçün dəsti aşağıdakı kimi açın.

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

_
Tupleni açarkən yuxarıda göstərilənlər şərti olaraq bundan sonra istifadə edilməyəcək dəyərlər üçün dəyişən kimi təyin edilə bilər. Məsələn, rənglərin sayı (kanalların sayı) istifadə edilmirsə, aşağıdakılar istifadə olunur.

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

Onu dəyişənə təyin etmədən onu indeks (indeks) ilə təyin etməklə də olduğu kimi istifadə etmək olar.

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

(width, height)
Əgər siz bu tuple əldə etmək istəyirsinizsə, dilimdən istifadə edib aşağıdakıları yaza bilərsiniz: cv2.resize() və s. Arqumenti ölçüyə görə təyin etmək istəyirsinizsə, bundan istifadə edin.

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

Boz tonlu (monoxrom) şəkillər üçün

Boz rəngli (monoxrom) təsvirlər zamanı aşağıdakı ikiölçülü ndarray istifadə olunur.

  • Sıra (hündürlük)
  • Sıra (en)

Forma bu tuple olacaq.

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

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

Əsasən rəngli şəkillərlə eynidir.

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

Dəyişənlərə eni və hündürlüyü təyin etmək istəyirsinizsə, şəklin rəngli və ya boz rəngdə olmasından asılı olmayaraq bunu aşağıdakı kimi edə bilərsiniz.

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

(width, height)
Bu tuple əldə etmək istəyirsinizsə, dilimlərdən istifadə edib aşağıdakı kimi yaza bilərsiniz. Şəklin rəngli və ya boz rəngdə olmasından asılı olmayaraq aşağıdakı yazı üslubundan istifadə edilə bilər.

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

Pillow(PIL):size, width, height:Şəklin ölçüsünü əldə edin (en, hündürlük)

Pillow(PIL) ilə təsviri oxumaqla əldə edilən şəkil obyekti aşağıdakı atributlara malikdir.

  • size
  • width
  • height

Ölçü aşağıdakı tupledir.
(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

Siz həmçinin atributlar kimi müvafiq olaraq eni və hündürlüyü əldə edə bilərsiniz.
width,height

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

Eyni şey boz rəngli (monoxrom) şəkillər üçün də keçərlidir.

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-da OpenCV və Pillow (PIL) kimi şəkillərlə işləmək üçün bir neçə kitabxana var. Bu bölmə onların hər biri üçün şəkil ölçüsünü (en və hündürlük) necə əldə edəcəyinizi izah edir.

OpenCV üçün forma və Yastıq üçün ölçüdən (PIL) istifadə edərək şəkil ölçüsünü (en və hündürlüyü) tuple kimi əldə edə bilərsiniz, lakin nəzərə alın ki, hər birinin sırası fərqlidir.

Aşağıdakı məlumatlar burada verilir.

  • OpenCV
    • ndarray.shape:Şəklin ölçüsünü əldə edin (en, hündürlük)
      • Rəngli şəkillər üçün
      • Boz tonlu (monoxrom) şəkillər üçün
  • Pillow(PIL)
    • size,width,height:Şəklin ölçüsünü əldə edin (en, hündürlük)

Şəkil ölçüsü (ölçüsü) əvəzinə faylın ölçüsünü (tutumunu) necə əldə etmək barədə aşağıdakı məqaləyə baxın.

OpenCV:ndarray.shape:Şəklin ölçüsünü əldə edin (en, hündürlük)

OpenCV-də şəkil faylı yükləndikdə ona NumPy massivi ndarray kimi baxılır və şəklin ölçüsünü (en və hündürlük) ndarrayın formasını göstərən atribut şəklindən əldə etmək olar.

Təkcə OpenCV-də deyil, həm də şəkil faylı Pillow-a yükləndikdə və ndarray-a çevrildikdə, ndarray ilə təmsil olunan şəklin ölçüsü formadan istifadə etməklə əldə edilir.

Rəngli şəkillər üçün

Rəngli təsvirlər vəziyyətində aşağıdakı üçölçülü ndarray istifadə olunur.

  • Sıra (hündürlük)
  • Sıra (en)
  • Rəng (3)

forma yuxarıdakı elementlərin bir dəstidir.

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ər bir dəyəri dəyişənə təyin etmək üçün dəsti aşağıdakı kimi açın.

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

_
Tupleni açarkən yuxarıda göstərilənlər şərti olaraq bundan sonra istifadə edilməyəcək dəyərlər üçün dəyişən kimi təyin edilə bilər. Məsələn, rənglərin sayı (kanalların sayı) istifadə edilmirsə, aşağıdakılar istifadə olunur.

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

Onu dəyişənə təyin etmədən onu indeks (indeks) ilə təyin etməklə də olduğu kimi istifadə etmək olar.

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

(width, height)
Əgər siz bu tuple əldə etmək istəyirsinizsə, dilimdən istifadə edib aşağıdakıları yaza bilərsiniz: cv2.resize() və s. Arqumenti ölçüyə görə təyin etmək istəyirsinizsə, bundan istifadə edin.

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

Boz tonlu (monoxrom) şəkillər üçün

Boz rəngli (monoxrom) təsvirlər zamanı aşağıdakı ikiölçülü ndarray istifadə olunur.

  • Sıra (hündürlük)
  • Sıra (en)

Forma bu tuple olacaq.

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

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

Əsasən rəngli şəkillərlə eynidir.

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

Dəyişənlərə eni və hündürlüyü təyin etmək istəyirsinizsə, şəklin rəngli və ya boz rəngdə olmasından asılı olmayaraq bunu aşağıdakı kimi edə bilərsiniz.

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

(width, height)
Bu tuple əldə etmək istəyirsinizsə, dilimlərdən istifadə edib aşağıdakı kimi yaza bilərsiniz. Şəklin rəngli və ya boz rəngdə olmasından asılı olmayaraq aşağıdakı yazı üslubundan istifadə edilə bilər.

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

Pillow(PIL):size, width, height:Şəklin ölçüsünü əldə edin (en, hündürlük)

Pillow(PIL) ilə təsviri oxumaqla əldə edilən şəkil obyekti aşağıdakı atributlara malikdir.

  • size
  • width
  • height

Ölçü aşağıdakı tupledir.
(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

Siz həmçinin atributlar kimi müvafiq olaraq eni və hündürlüyü əldə edə bilərsiniz.
width,height

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

Eyni şey boz rəngli (monoxrom) şəkillər üçün də keçərlidir.

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