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