பைதான், ஓபன்சிவி மற்றும் தலையணை (பிஐஎல்) மூலம் படத்தின் அளவை (அகலம் மற்றும் உயரம்) பெறுதல்

வணிக

Python இல் OpenCV மற்றும் Pillow (PIL) போன்ற படங்களை கையாளும் பல நூலகங்கள் உள்ளன. அவை ஒவ்வொன்றிற்கும் படத்தின் அளவை (அகலம் மற்றும் உயரம்) எவ்வாறு பெறுவது என்பதை இந்தப் பகுதி விளக்குகிறது.

ஓபன்சிவிக்கான வடிவத்தையும், தலையணையின் அளவையும் (பிஐஎல்) பயன்படுத்தி, படத்தின் அளவை (அகலம் மற்றும் உயரம்) டூப்ளாகப் பெறலாம், ஆனால் ஒவ்வொன்றின் வரிசையும் வேறுபட்டது என்பதை நினைவில் கொள்ளவும்.

பின்வரும் தகவல்கள் இங்கே கொடுக்கப்பட்டுள்ளன.

  • OpenCV
    • ndarray.shape:படத்தின் அளவைப் பெறுங்கள் (அகலம், உயரம்)
      • வண்ணப் படங்களுக்கு
      • கிரேஸ்கேல் (மோனோக்ரோம்) படங்களுக்கு
  • Pillow(PIL)
    • size,width,height:படத்தின் அளவைப் பெறுங்கள் (அகலம், உயரம்)

படத்தின் அளவு (அளவு) என்பதற்குப் பதிலாக ஒரு கோப்பின் அளவை (திறன்) எவ்வாறு பெறுவது என்பது பற்றிய பின்வரும் கட்டுரையைப் பார்க்கவும்.

OpenCV:ndarray.shape:படத்தின் அளவைப் பெறுங்கள் (அகலம், உயரம்)

OpenCV இல் ஒரு படக் கோப்பு ஏற்றப்படும் போது, ​​அது NumPy வரிசை ndarray ஆகக் கருதப்படுகிறது, மேலும் படத்தின் அளவை (அகலம் மற்றும் உயரம்) பண்புக்கூறு வடிவத்திலிருந்து பெறலாம், இது ndray இன் வடிவத்தைக் குறிக்கிறது.

OpenCV இல் மட்டுமின்றி, ஒரு படக் கோப்பு தலையணையில் ஏற்றப்பட்டு 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

_
ஒரு டூபிளைத் திறக்கும்போது, ​​மேலே உள்ளவை வழக்கமாக ஒரு மாறியாக ஒதுக்கப்படும் மதிப்புகளுக்கு அதன் பிறகு பயன்படுத்தப்படாது. எடுத்துக்காட்டாக, வண்ணங்களின் எண்ணிக்கை (சேனல்களின் எண்ணிக்கை) பயன்படுத்தப்படாவிட்டால், பின்வருபவை பயன்படுத்தப்படும்.

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:படத்தின் அளவைப் பெறுங்கள் (அகலம், உயரம்)

தலையணை (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

கிரேஸ்கேல் (மோனோக்ரோம்) படங்களுக்கும் இது பொருந்தும்.

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