OpenCV ব্যবহার করে ইমেজ প্রসেসিং
OpenCV (Open Source Computer Vision) হলো একটি ওপেন সোর্স প্রোগ্রামিং লাইব্রেরি যা মূলত মেশিন লার্নিং এবং কম্পিউটার ভিশনের জন্য তৈরি করা হয়েছে। এটি কম্পিউটার ভিশন অ্যাপ্লিকেশনগুলোর কাজ করার জন্য কমন ইনফ্রাস্ট্রাকচার দেয় এবং কমার্শিয়াল প্রোডাক্টে মেশিন লার্নিং ব্যবহারকে দ্রুত করে।
এখানে ২.৫ হাজারেরও বেশি অপ্টিমাইজড অ্যালগরিদম রয়েছে যা ক্লাসিক এবং স্টেট-অফ-দ্য-আর্ট (state-of-the-art) দুটোই। এত বেশি অ্যালগরিদম থাকায় এই লাইব্রেরিটি ফেস ডিটেকশন ও রিকগনিশন, অবজেক্ট আইডেন্টিফিকেশন, ভিডিওতে মানব ক্রিয়া ক্লাসিফিকেশন, ক্যামেরা মুভমেন্ট ট্র্যাকিং, একাধিক ছবি জোড়া দিয়ে হাই রেজোলিউশন ছবি বানানো ইত্যাদি বহু উদ্দেশ্যে ব্যবহার করা যায়।
এখানে আমি দেখাব কিভাবে OpenCV লাইব্রেরি এবং পাইথন ব্যবহার করে ছবি পড়া এবং দেখানো যায়। এটি cv2 এবং Numpy মডিউল দিয়ে বাস্তবায়ন করা হয়েছে।
Numpy মডিউল পাইথন প্যাকেজ ইন্ডেক্স (PyPI) থেকে ডাউনলোড করা যায়।
$ pip install numpy
একটি ছবি পড়া
ছবি পড়তে cv2.imread() ফাংশন ব্যবহার করা হয়। ছবিটি বর্তমান ওয়ার্কিং ডিরেক্টরিতে থাকতে হবে, না হলে অ্যাবসোলিউট পথ দিতে হবে।
import numpy as np
import cv2
# কালার ছবি গ্রে-স্কেলে লোড
img = cv2.imread('Top-bike-wallpaper.jpg', 0)
ছবি দেখানো
একটি উইন্ডোতে ছবি দেখাতে cv2.imshow() ফাংশন ব্যবহার করা হয়।
# ছবি দেখান
cv2.imshow('image', img)
# কি বাইন্ডিং ফাংশন
cv2.waitKey(0)
# আগে তৈরি সব উইন্ডো ডিস্ট্রয়
cv2.destroyAllWindows()
উপরের কোড চালালে উইন্ডোর স্ক্রিনশট নিচের মতো দেখাবে:

ছবি লিখা/সেভ করা
cv2.imwrite() ফাংশন ব্যবহার করে ছবি সেভ করা হয়।
প্রথম আর্গুমেন্ট হলো ফাইল নাম, দ্বিতীয় আর্গুমেন্ট হলো সেভ করার ছবি।
cv2.imwrite('messigray.png', img)
সারসংক্ষেপ:
import numpy as np
import cv2
# ছবি পড়া
# কালার ছবি গ্রে-স্কেলে লোড
img = cv2.imread('Top-bike-wallpaper.jpg', 0)
# ছবি দেখান
cv2.imshow('image', img)
# কি বাইন্ডিং ফাংশন
k = cv2.waitKey(0) # ESC কি প্রেস করলে বের হয়ে যাবে
if k == 27:
cv2.destroyAllWindows()
# 's' কি প্রেস করলে সেভ করে বের হয়ে যাবে
elif k == ord('s'):
cv2.imwrite('myBike.jpg', img)
cv2.destroyAllWindows()
's' কি দিয়ে ছবি সেভ করুন অথবা 'ESC' কি দিয়ে সেভ ছাড়া বের হয়ে যান।
পাইথন ইমেজিং লাইব্রেরি (PIL) ব্যবহার
পাইথন ইমেজিং লাইব্রেরি (PIL) হলো পাইথনে ইমেজ ম্যানিপুলেশনের লাইব্রেরি। pip দিয়ে PIL লাইব্রেরি ইনস্টল করুন:
$ pip install Pillow
from PIL import Image, ImageFilter
# ছবি পড়া
im = Image.open('myBike.png')
# ছবি দেখান
im.show()
# ছবিতে ফিল্টার প্রয়োগ
im_sharp = im.filter(ImageFilter.SHARPEN)
# ফিল্টার করা ছবি নতুন ফাইলে সেভ
im_sharp.save('another_Bike.jpg', 'JPEG')
আউটপুট

ছবিটি আমার ডিফল্ট লোকেশন অর্থাৎ বর্তমান ওয়ার্কিং ডিরেক্টরিতে সেভ হয়েছে এবং উইন্ডোর স্ক্রিনশট আমাদের ছবিটি দেখাচ্ছে।