কম্পিউটার

পাইথনে OpenCV ব্যবহার করে ইমেজের ক্ষয় ও প্রসারণ


এই সমস্যায়, আমরা দেখব কিভাবে পাইথন ওপেনসিভি মডিউল ব্যবহার করে ক্ষয় ও প্রসারণের মতো কিছু রূপগত অপারেশন করতে পারে। OpenCV লাইব্রেরি মূলত কম্পিউটার ভিশনের জন্য ডিজাইন করা হয়েছে। এটি ওপেন সোর্স। মূলত এটি ইন্টেল দ্বারা ডিজাইন করা হয়েছিল। এটি ওপেন সোর্স বিএসডি লাইসেন্সের অধীনে ব্যবহার করার জন্য বিনামূল্যে।

OpenCV কার্যকারিতা ব্যবহার করতে, আমাদের pip ব্যবহার করে সেগুলি ডাউনলোড করতে হবে .

sudo pip3 install opencv-python

ক্ষয় ইমেজ কি এবং এটি কিভাবে কাজ করে?

ক্ষয়কালে, এটি অগ্রভাগের বস্তুর সীমানাকে ক্ষয় করে দেয়। এটি ছবি থেকে ছোট সাদা গোলমাল অপসারণ করতে ব্যবহৃত হয়। দুটি সংযুক্ত ছবিকে বিচ্ছিন্ন করতেও ক্ষয় ব্যবহার করা যেতে পারে।

  • একটি চিত্র থেকে একটি কার্নেল গঠিত হয়। কার্নেল একটি ম্যাট্রিক্স, যেখানে ক্রম বিজোড়, যেমন 3, 5, 7।

  • ছবির একটি পিক্সেল নির্বাচন করা হয়. এই পিক্সেলটিকে 1 হিসাবে বেছে নেওয়া হবে শুধুমাত্র যদি কার্নেলের অধীনে সমস্ত পিক্সেল 1 হয়। অন্যথায় এটি ক্ষয় হয়ে যাবে।

  • তাই সীমানার কাছাকাছি সমস্ত পিক্সেল বাতিল করা হবে৷

  • তাই ফোরগ্রাউন্ড অবজেক্টের বেধ কমে যায়।

প্রসারণ চিত্র কী এবং এটি কীভাবে কাজ করে?

প্রসারণে, এটি বস্তুর ক্ষেত্রফল বৃদ্ধি করে। ক্ষয় সাদা শব্দ অপসারণ করতে পারে, তবে এটি আমাদের চিত্রকেও সঙ্কুচিত করে, তাই ক্ষয়ের পরে, যদি প্রসারণ করা হয়, আমরা আরও ভাল শব্দ অপসারণের ফলাফল পেতে পারি। বিস্তৃতিটি বস্তুর কিছু ভাঙা অংশ যোগ করতেও ব্যবহার করা যেতে পারে।

  • একটি চিত্র থেকে একটি কার্নেল গঠিত হয়। কার্নেল একটি ম্যাট্রিক্স, যেখানে ক্রম বিজোড়, যেমন 3, 5, 7।

  • ছবির একটি পিক্সেল নির্বাচন করা হয়. এই পিক্সেলটি 1 হিসাবে বেছে নেওয়া হবে শুধুমাত্র যদি কার্নেলের অধীনে সমস্ত পিক্সেল 1 হয়৷

  • সাদা অঞ্চল বা চিত্রের অগ্রভাগের বস্তুর আকার বাড়ায়।

উদাহরণ কোড

import cv2 
import numpy as np
input_image = cv2.imread('TP_logo.jpg', cv2.IMREAD_COLOR)
 kernel = np.ones((3,3), np.uint8)       # set kernel as 3x3 matrix from numpy
#Create erosion and dilation image from the original image
erosion_image = cv2.erode(input_image, kernel, iterations=1)
dilation_image = cv2.dilate(input_image, kernel, iterations=1)
cv2.imshow('Input', input_image)
cv2.imshow('Erosion', erosion_image)
cv2.imshow('Dilation', dilation_image)
cv2.waitKey(0)       #wait for a key to exit

আউটপুট

পাইথনে OpenCV ব্যবহার করে ইমেজের ক্ষয় ও প্রসারণ
  1. পাইথন ব্যবহার করে ছবি পড়ছেন?

  2. ওপেনসিভি ব্যবহার করে একটি চিত্রের প্রান্ত সনাক্ত করতে পাইথন প্রোগ্রাম

  3. পাইথনে OpenCv ব্যবহার করে ছবি সংযোজন এবং মিশ্রণ

  4. পাইথন ওপেনসিভি মডিউল ব্যবহার করে হিস্টোগ্রাম সমতা