हल: छवि का आकार बदलें और इसे numpy array opencv में फ़िर करें

आधुनिक दुनिया में, छवियां संचार और प्रौद्योगिकी का एक अनिवार्य हिस्सा हैं। आर्टिफिशियल इंटेलिजेंस, मशीन लर्निंग और कंप्यूटर विजन में प्रगति के साथ, यह समझना तेजी से महत्वपूर्ण हो गया है कि छवियों को प्रभावी ढंग से कैसे संसाधित और हेरफेर किया जाए। यह लेख एक प्रचलित समस्या पर चर्चा करता है - छवियों का आकार बदलना और उन्हें OpenCV, एक लोकप्रिय ओपन-सोर्स कंप्यूटर विज़न लाइब्रेरी का उपयोग करके NumPy सरणी में फ़िट करना। हम गहराई में जाएंगे, एक व्यवस्थित दृष्टिकोण प्रदान करते हुए, पुस्तकालयों और शामिल कार्यों का उल्लेख करते हुए कोड को चरण-दर-चरण समझाएंगे, और समस्या के लिए उनका महत्व।

परिचय

छवियों को मैट्रिसेस के रूप में संग्रहीत किया जाता है जिसमें पिक्सेल तीव्रता होती है। छवि डेटा के साथ कुशलता से काम करने के लिए, डेवलपर्स को अक्सर अपनी आवश्यकताओं के अनुसार इसे NumPy सरणी में फिट करने के लिए एक छवि का आकार बदलने की आवश्यकता होती है। इसे प्राप्त करने के लिए सबसे अच्छे पुस्तकालयों में से एक OpenCV है, जो विविध छवि प्रसंस्करण आवश्यकताओं को मूल रूप से पूरा करता है। इस लेख में, हम यह प्रदर्शित करेंगे कि पायथन और ओपनसीवी का उपयोग करके किसी छवि का आकार कैसे बदला जाए और इसे NumPy सरणी में फ़िट किया जाए।

आवश्यक पुस्तकालय आयात करना

शुरू करने के लिए, हमें अपने पायथन वातावरण में आवश्यक पुस्तकालयों को आयात करने की आवश्यकता है।

import cv2
import numpy as np
  • सीवी2: इमेज प्रोसेसिंग कार्यों के लिए उपयोग की जाने वाली OpenCV लाइब्रेरी।
  • खसखस: NumPy लाइब्रेरी एरेज़ और मैट्रिसेस के साथ प्रभावी ढंग से काम करने के लिए सहायता प्रदान करती है।

छवि को लोड करना और उसका आकार बदलना

सबसे पहले, हमें छवि को लोड करने और फिर OpenCV फ़ंक्शन का उपयोग करके इसका आकार बदलने की आवश्यकता है cv2.resize():

# Load the image
image = cv2.imread('path/to/image.jpg')

# Define the new size (width, height)
new_size = (300, 300)

# Resize the image
resized_image = cv2.resize(image, new_size, interpolation=cv2.INTER_AREA)
  • cv2.imread (): यह फ़ंक्शन निर्दिष्ट फ़ाइल पथ से एक छवि पढ़ता है।
  • नया आकार: आकार बदलने वाली छवि की वांछित चौड़ाई और ऊंचाई वाला टपल। इस स्थिति में, हम इसका आकार बदलकर 300×300 पिक्सेल करना चाहते हैं।
  • cv2.resize (): यह एक निर्दिष्ट प्रक्षेप विधि का उपयोग करके छवि को निर्दिष्ट आयामों में बदल देता है।

आकार बदलने वाली छवि को NumPy सरणी में फ़िट करना

एक बार छवि का आकार बदल जाने के बाद, हमें इसे एक NumPy सरणी में फ़िट करने की आवश्यकता होती है:

# Create a NumPy array with the desired dimensions (width, height, channels)
array_shape = (300, 300, 3)

# Fit the resized image into the NumPy array
numpy_image = np.zeros(array_shape, dtype=np.uint8)
numpy_image[:resized_image.shape[0], :resized_image.shape[1]] = resized_image
  • सरणी_आकार: एक टपल जिसमें NumPy सरणी के लिए वांछित आयाम हैं। इसकी चौड़ाई, ऊंचाई और चैनलों की संख्या हमारी आकार बदलने वाली छवि के समान होनी चाहिए।
  • एनपी.शून्य (): यह फ़ंक्शन निर्दिष्ट आयामों और डेटा प्रकार के साथ एक खाली NumPy सरणी बनाता है।
  • डी प्रकार: यह NumPy सरणी के डेटा प्रकार को परिभाषित करता है। np.uint8 8-बिट अहस्ताक्षरित पूर्णांक का प्रतिनिधित्व करता है, जिसका उपयोग आमतौर पर छवि डेटा के लिए किया जाता है।

इन चरणों को पूरा करने के बाद, छवि का आकार बदल दिया गया है और आगे की प्रक्रिया के लिए तैयार NumPy सरणी में फिट हो गया है।

अतिरिक्त ओपनसीवी कार्य और तकनीकें

छवियों के आकार बदलने से संबंधित कुछ अतिरिक्त OpenCV फ़ंक्शंस और तकनीकें यहां दी गई हैं:

  • cv2.INTER_LINEAR: में डिफ़ॉल्ट इंटरपोलेशन के लिए उपयोग किया जाता है cv2.resize().
  • cv2.INTER_CUBIC: अपस्केलिंग के लिए आकार बदलने की बेहतर गुणवत्ता प्रदान करता है। यह अन्य प्रक्षेप विधियों की तुलना में धीमी है।
  • cv2.INTER_NEAREST: आकार बदलने का सबसे तेज़ तरीका। हालांकि, इंटरपोलेशन की अनुपस्थिति के कारण गुणवत्ता खराब हो जाती है।
  • पहलू अनुपात विचार: आकार बदलते समय, पहलू अनुपात को बनाए रखना महत्वपूर्ण है, यदि नहीं, तो छवि विकृत हो सकती है।

सारांश में, हमने प्रदर्शित किया है कि OpenCV का उपयोग करके किसी छवि का आकार कैसे बदला जाए और इसे NumPy सरणी में फ़िट किया जाए। उल्लिखित चरणों का पालन करके, डेवलपर्स विभिन्न कंप्यूटर विज़न, मशीन लर्निंग और अन्य अनुप्रयोगों के लिए छवियों में कुशलता से हेरफेर कर सकते हैं।

संबंधित पोस्ट:

एक टिप्पणी छोड़ दो