ਪਾਈਥਨ, ਓਪਨਸੀਵੀ ਅਤੇ ਪਿਲੋ (ਪੀਆਈਐਲ) ਨਾਲ ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ) ਪ੍ਰਾਪਤ ਕਰਨਾ

ਕਾਰੋਬਾਰ

ਪਾਈਥਨ ਵਿੱਚ ਚਿੱਤਰਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕਈ ਲਾਇਬ੍ਰੇਰੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ ਓਪਨਸੀਵੀ ਅਤੇ ਪਿਲੋ (ਪੀਆਈਐਲ)। ਇਹ ਭਾਗ ਦੱਸਦਾ ਹੈ ਕਿ ਉਹਨਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਲਈ ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ) ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ।

ਤੁਸੀਂ OpenCV ਲਈ ਆਕਾਰ ਅਤੇ ਸਿਰਹਾਣੇ (PIL) ਲਈ ਆਕਾਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ) ਇੱਕ ਟੁਪਲ ਵਜੋਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਧਿਆਨ ਦਿਓ ਕਿ ਹਰੇਕ ਦਾ ਕ੍ਰਮ ਵੱਖਰਾ ਹੈ।

ਹੇਠਾਂ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਇੱਥੇ ਦਿੱਤੀ ਗਈ ਹੈ।

  • OpenCV
    • ndarray.shape:ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ, ਉਚਾਈ) ਪ੍ਰਾਪਤ ਕਰੋ
      • ਰੰਗ ਚਿੱਤਰ ਲਈ
      • ਗ੍ਰੇਸਕੇਲ (ਮੋਨੋਕ੍ਰੋਮ) ਚਿੱਤਰਾਂ ਲਈ
  • Pillow(PIL)
    • size,width,height:ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ, ਉਚਾਈ) ਪ੍ਰਾਪਤ ਕਰੋ

ਚਿੱਤਰ ਆਕਾਰ (ਆਕਾਰ) ਦੀ ਬਜਾਏ ਇੱਕ ਫਾਈਲ ਦਾ ਆਕਾਰ (ਸਮਰੱਥਾ) ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ ਇਸ ਬਾਰੇ ਹੇਠਾਂ ਦਿੱਤਾ ਲੇਖ ਦੇਖੋ।

OpenCV:ndarray.shape:ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ, ਉਚਾਈ) ਪ੍ਰਾਪਤ ਕਰੋ

ਜਦੋਂ ਇੱਕ ਚਿੱਤਰ ਫਾਈਲ OpenCV ਵਿੱਚ ਲੋਡ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਇਸਨੂੰ NumPy ਐਰੇ ndarray ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਚਿੱਤਰ ਦਾ ਆਕਾਰ (ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ) ਗੁਣ ਆਕਾਰ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਕਿ 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'>

ਇੱਕ ਵੇਰੀਏਬਲ ਨੂੰ ਹਰੇਕ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਅਨੁਸਾਰ ਟੂਪਲ ਨੂੰ ਅਨਪੈਕ ਕਰੋ।

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)
ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਟੂਪਲ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਸਲਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਹੇਠਾਂ ਲਿਖ ਸਕਦੇ ਹੋ: cv2.resize(), ਆਦਿ। ਜੇਕਰ ਤੁਸੀਂ ਸਾਈਜ਼ ਦੁਆਰਾ ਆਰਗੂਮੈਂਟ ਨਿਰਧਾਰਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰੋ।

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

ਗ੍ਰੇਸਕੇਲ (ਮੋਨੋਕ੍ਰੋਮ) ਚਿੱਤਰਾਂ ਲਈ

ਗ੍ਰੇਸਕੇਲ (ਮੋਨੋਕ੍ਰੋਮ) ਚਿੱਤਰਾਂ ਦੇ ਮਾਮਲੇ ਵਿੱਚ, ਨਿਮਨਲਿਖਤ ਦੋ-ਅਯਾਮੀ ਐਨਡਰਰੇ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

  • ਕਤਾਰ (ਉਚਾਈ)
  • ਕਤਾਰ (ਚੌੜਾਈ)

ਸ਼ਕਲ ਇਹ ਟੂਪਲ ਹੋਵੇਗੀ।

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)
ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਟੂਪਲ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਟੁਕੜਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸਨੂੰ ਹੇਠਾਂ ਲਿਖ ਸਕਦੇ ਹੋ। ਹੇਠ ਲਿਖੀ ਲਿਖਤ ਸ਼ੈਲੀ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ ਭਾਵੇਂ ਚਿੱਤਰ ਰੰਗ ਵਿੱਚ ਹੋਵੇ ਜਾਂ ਗ੍ਰੇਸਕੇਲ ਵਿੱਚ।

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