पायथन, ओपनसीवी और पिलो (पीआईएल) के साथ छवि आकार (चौड़ाई और ऊंचाई) प्राप्त करना

व्यापार

पायथन में छवियों को संभालने के लिए कई पुस्तकालय हैं, जैसे ओपनसीवी और पिलो (पीआईएल)। यह खंड बताता है कि उनमें से प्रत्येक के लिए छवि का आकार (चौड़ाई और ऊंचाई) कैसे प्राप्त करें।

आप OpenCV के लिए आकार और पिलो (PIL) के आकार का उपयोग करके छवि का आकार (चौड़ाई और ऊंचाई) प्राप्त कर सकते हैं, लेकिन ध्यान दें कि प्रत्येक का क्रम अलग है।

निम्नलिखित जानकारी यहाँ प्रदान की गई है।

  • OpenCV
    • ndarray.shape:छवि का आकार प्राप्त करें (चौड़ाई, ऊंचाई)
      • रंगीन छवियों के लिए
      • ग्रेस्केल (मोनोक्रोम) छवियों के लिए
  • Pillow(PIL)
    • size,width,height:छवि का आकार प्राप्त करें (चौड़ाई, ऊंचाई)

छवि आकार (आकार) के बजाय फ़ाइल का आकार (क्षमता) कैसे प्राप्त करें, इस पर निम्न आलेख देखें।

OpenCV:ndarray.shape:छवि का आकार प्राप्त करें (चौड़ाई, ऊंचाई)

जब एक छवि फ़ाइल को OpenCV में लोड किया जाता है, तो इसे एक NumPy सरणी ndarray के रूप में माना जाता है, और छवि का आकार (चौड़ाई और ऊंचाई) विशेषता आकार से प्राप्त किया जा सकता है, जो ndarray के आकार को इंगित करता है।

न केवल 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'>

प्रत्येक मान को एक चर के लिए असाइन करने के लिए, टपल को निम्नानुसार अनपैक करें।

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:छवि का आकार प्राप्त करें (चौड़ाई, ऊंचाई)

पिलो (पीआईएल) के साथ एक छवि को पढ़कर प्राप्त छवि वस्तु में निम्नलिखित विशेषताएं हैं।

  • 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