কম্পিউটার টিউটোরিয়াল

পাইথনে OpenCV ব্যবহার করে ইমেজ ইরোশন এবং ডাইলেশন


এই সমস্যায় আমরা দেখব কীভাবে পাইথন OpenCV মডিউল ব্যবহার করে ইরোশন (Erosion) এবং ডাইলেশন (Dilation) এর মতো কিছু মরফোলজিক্যাল অপারেশন করতে পারে। OpenCV লাইব্রেরি মূলত কম্পিউটার ভিশনের জন্য ডিজাইন করা। এটি ওপেন সোর্স। মূলত এটি ইন্টেল দ্বারা ডিজাইন করা হয়েছিল। এটি ওপেন সোর্স BSD লাইসেন্সের অধীনে ফ্রি ব্যবহার করা যায়।

OpenCV ফাংশনালিটি ব্যবহার করতে হলে, আমাদের pip ব্যবহার করে ডাউনলোড করতে হবে।

sudo pip3 install opencv-python

ইরোশন ইমেজ কী এবং কীভাবে কাজ করে?

ইরোশনে, এটি ফোরগ্রাউন্ড অবজেক্টের বাউন্ডারি রodob করে দেয়। এটি ছবি থেকে ছোট সাদা নויז রিমুভ করতে ব্যবহৃত হয়। ইরোশন দুটি কানেক্টেড ইমেজ আলাদা করতেও ব্যবহার করা যায়।

  • একটি ইমেজ থেকে কার্নেল তৈরি করা হয়। কার্নেল একটি ম্যাট্রিক্স, যেখানে অর্ডার বিজোড়, যেমন ৩, ৫, ৭।

  • ইমেজের একটি পিক্সেল বেছে নেওয়া হয়। এই পিক্সেলটি ১ হিসেবে বেছে নেওয়া হবে শুধু তখনই যখন কার্নেলের অধীনে সকল পিক্সেল ১ হয়। অন্যথায় এটি ইরোড হবে।

  • তাই বাউন্ডারির কাছে সকল পিক্সেল বাতিল হয়ে যায়।

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

ডাইলেশন ইমেজ কী এবং কীভাবে কাজ করে?

ডাইলেশনে, এটি অবজেক্ট এরিয়া বাড়ায়। ইরোশন সাদা নויז রিমুভ করতে পারে, কিন্তু এটি আমাদের ইমেজ সঙ্কুচিত ও করে, তাই ইরোশনের পর যদি ডাইলেশন করা হয়, তবে আমরা আরও ভালো নויז রিমুভাল রেজাল্ট পাই। ডাইলেশন একটি অবজেক্টের ভাঙা অংশগুলো जोড়া দিতেও ব্যবহার করা যায়।

  • একটি ইমেজ থেকে কার্নেল তৈরি করা হয়। কার্নেল একটি ম্যাট্রিক্স, যেখানে অর্ডার বিজোড়, যেমন ৩, ৫, ৭।

  • ইমেজের একটি পিক্সেল বেছে নেওয়া হয়। এই পিক্সেলটি ১ হিসেবে বেছে নেওয়া হবে শুধু তখনই যখন কার্নেলের অধীনে সকল পিক্সেল ১ হয়।

  • ইমেজের সাদা অঞ্চল বা ফোরগ্রাউন্ড অবজেক্টের আকার বাড়ায়।

উদাহরণ কোড

import cv2
import numpy as np

input_image = cv2.imread('TP_logo.jpg', cv2.IMREAD_COLOR)
kernel = np.ones((3,3), np.uint8)  # numpy থেকে 3x3 ম্যাট্রিক্স হিসেবে কার্নেল সেট

# মূল ইমেজ থেকে ইরোশন এবং ডাইলেশন ইমেজ তৈরি
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)  # এক্সিট করার জন্য একটি কী অপেক্ষা করুন

আউটপুট

পাইথনে OpenCV ব্যবহার করে ইমেজ ইরোশন এবং ডাইলেশন
  1. পাইথনে ছবি পড়া (OpenCV এবং PIL ব্যবহার করে)

  2. পাইথন প্রোগ্রাম: OpenCV ব্যবহার করে ইমেজের এজ ডিটেকশন

  3. পাইথনে OpenCV ব্যবহার করে ইমেজ অ্যাডিশন ও ব্লেন্ডিং

  4. পাইথন OpenCV মডিউল ব্যবহার করে হিস্টোগ্রাম ইকুয়ালাইজেশন