పైథాన్, ఓపెన్‌సివి మరియు పిల్లో(పిఐఎల్)తో చిత్ర పరిమాణాన్ని (వెడల్పు మరియు ఎత్తు) పొందడం

వ్యాపారం

పైథాన్‌లో ఓపెన్‌సివి మరియు పిల్లో (పిఐఎల్) వంటి చిత్రాలను నిర్వహించడానికి అనేక లైబ్రరీలు ఉన్నాయి. వాటిలో ప్రతిదానికి చిత్ర పరిమాణాన్ని (వెడల్పు మరియు ఎత్తు) ఎలా పొందాలో ఈ విభాగం వివరిస్తుంది.

మీరు ఓపెన్‌సివి కోసం ఆకారాన్ని మరియు పిల్లో (పిఐఎల్) కోసం పరిమాణాన్ని ఉపయోగించి చిత్ర పరిమాణాన్ని (వెడల్పు మరియు ఎత్తు) టుపుల్‌గా పొందవచ్చు, అయితే ప్రతి దాని క్రమం భిన్నంగా ఉంటుందని గమనించండి.

కింది సమాచారం ఇక్కడ అందించబడింది.

  • OpenCV
    • ndarray.shape:చిత్ర పరిమాణాన్ని పొందండి (వెడల్పు, ఎత్తు)
      • రంగు చిత్రాల కోసం
      • గ్రేస్కేల్ (మోనోక్రోమ్) చిత్రాల కోసం
  • Pillow(PIL)
    • size,width,height:చిత్ర పరిమాణాన్ని పొందండి (వెడల్పు, ఎత్తు)

చిత్రం పరిమాణం (పరిమాణం) బదులుగా ఫైల్ యొక్క పరిమాణాన్ని (సామర్థ్యం) ఎలా పొందాలో క్రింది కథనాన్ని చూడండి.

OpenCV:ndarray.shape:చిత్ర పరిమాణాన్ని పొందండి (వెడల్పు, ఎత్తు)

OpenCVలో ఇమేజ్ ఫైల్ లోడ్ అయినప్పుడు, అది NumPy శ్రేణి ndarrayగా పరిగణించబడుతుంది మరియు ndarray ఆకారాన్ని సూచించే లక్షణం ఆకారం నుండి చిత్రం యొక్క పరిమాణాన్ని (వెడల్పు మరియు ఎత్తు) పొందవచ్చు.

OpenCVలో మాత్రమే కాకుండా, ఒక ఇమేజ్ ఫైల్‌ను Pillowలో లోడ్ చేసి, 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)

గ్రేస్కేల్ (మోనోక్రోమ్) చిత్రాల కోసం

గ్రేస్కేల్ (మోనోక్రోమ్) చిత్రాల విషయంలో, క్రింది ద్విమితీయ 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)
మీరు ఈ టుపుల్‌ని పొందాలనుకుంటే, మీరు స్లైస్‌లను ఉపయోగించి ఈ క్రింది విధంగా వ్రాయవచ్చు. చిత్రం రంగులో ఉన్నా లేదా గ్రేస్కేల్‌లో ఉన్నా కింది రచనా శైలిని ఉపయోగించవచ్చు.

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

Pillow(PIL):size, width, height:చిత్ర పరిమాణాన్ని పొందండి (వెడల్పు, ఎత్తు)

పిల్లో(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
Copied title and URL