Python, OpenCV અને Pillow(PIL) વડે ઇમેજ સાઈઝ (પહોળાઈ અને ઊંચાઈ) મેળવવી

બિઝનેસ

પાયથોનમાં ઈમેજો હેન્ડલ કરવા માટે ઘણી લાઈબ્રેરીઓ છે, જેમ કે OpenCV અને પિલો (PIL). આ વિભાગ સમજાવે છે કે તે દરેક માટે છબીનું કદ (પહોળાઈ અને ઊંચાઈ) કેવી રીતે મેળવવી.

તમે 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:છબીનું કદ (પહોળાઈ, ઊંચાઈ) મેળવો

પિલો(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