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

পাইথন প্রোগ্রামিং-এ ইমেজ ভিত্তিক স্টেগানোগ্রাফি


এই নিবন্ধে আমরা পাইথন ব্যবহার করে ইমেজ-ভিত্তিক স্টেগানোগ্রাফি নিয়ে আলোচনা করব। স্টেগানোগ্রাফি হলো একটি পদ্ধতি যেখানে টেক্সটকে অডিও, ভিডিও এবং ইমেজের পেছনে লুকিয়ে রাখা হয়। এটি সুরক্ষা বড়াতে এবং মিথ্যা কপিরাইট দাবি থেকে রক্ষা পেতে ব্যবহৃত হয়।

এটি পাইথনে উপলব্ধ stepic মডিউলের এনকোডিং ফিচারের সাহায্যে অর্জন করা হয়। প্রদর্শন এবং ভিউইং উদ্দেশ্যে আমরা পাইথনে উপলব্ধ PIL (Python Imaging Library) ব্যবহার করি।

পছন্দের IDE - Jupyter Notebook

সকল ডিপেন্ডেন্সি ইম্পোর্ট করা:

>>> from PIL import Image
>>> import stepic

এই নিবন্ধে, আমরা নিচে দেওয়া ইমেজে টেক্সট এনকোড করব। নিচের ইমেজটি ডাউনলোড করুন এবং Jupyter Notebook লোকালহোস্ট ফোল্ডারে "logo.png" নামে সেভ করুন।

পাইথন প্রোগ্রামিং-এ ইমেজ ভিত্তিক স্টেগানোগ্রাফি

আপনি আপনার পছন্দের যেকোনো ইমেজ ব্যবহার করতে পারেন। শুধু আপনার ইমেজের পাথ ডবল কোটেশন মার্কের ভিতরে নির্দিষ্ট করুন।

>>> img = Image.open('logo.png')
>>> img.show()

Image ফাংশন আমাদের সেই "image"-টিকে খুলতে দেয় যার ওপর স্টেগানোগ্রাফি করা হবে। .show() ফাংশন আমাদের ইমেজটি একটি পপআপ হিসেবে দেখতে দেয়।

পাইথন প্রোগ্রামিং-এ ইমেজ ভিত্তিক স্টেগানোগ্রাফি

এখন stepic মডিউল ব্যবহার করে একটি মেসেজ ৮-বিট বাইনারি ডেটায় ASCII ভ্যালু ব্যবহার করে এনকোড করব। এনকোডের জন্য .encode() ফাংশন ব্যবহার করা হয় যা দুটি প্যারামিটার গ্রহণ করে: ইমেজ এবং মেসেজ।

আমরা .save() ফাংশন ব্যবহার করে হিডেন মেসেজটি আসল ইমেজে সেভ করব।

>>> img1 = stepic.encode(im, b'Tutorialspoint')
>>> img1.save('logo.png', 'PNG')

এখন এনকোডেড ইমেজটি ডিসপ্লে করুন।

>>> img1 = Image.open('logo.png')
>>> img1.show()

পাইথন প্রোগ্রামিং-এ ইমেজ ভিত্তিক স্টেগানোগ্রাফি

আমার মতে আপনি দুটি ইমেজে কোনো পরিবর্তন লক্ষ্য করবেন না। কারণ মেসেজটি লুকিয়ে আছে এবং সরাসরি দৃশ্যমান নয়।

সফলভাবে মেসেজ এনকোড হয়েছে কিনা তা যাচাই করতে নিচের কোড দেখুন।

>>> im2 = Image.open('logo.png')
>>> message_hidden = stepic.decode(im2)
>>> print(message_hidden)


'Tutorialspoint'

এখানে পাইথনে উপলব্ধ stepic মডিউলের বিল্ট-ইন ডিকোডার দ্বারা হিডেন/এনকোডেড মেসেজটি প্রদর্শিত হয়েছে।

উপসংহার

এই নিবন্ধে আমরা পাইথন ৩.x-এ stepic এবং PIL মডিউল ব্যবহার করে ইমেজ-ভিত্তিক স্টেগানোগ্রাফি শিখেছি।

  1. পাইথনে কনভোলিউশন (Convolutions) ব্যবহার

  2. পাইথনে আকার বৈশিষ্ট্যের ভিত্তিতে ছবি ফিল্টার করা

  3. পাইথনে ছবি পড়া (OpenCV এবং PIL ব্যবহার করে)

  4. পাইথনে cx_Freeze ব্যবহার করে এক্সিকিউটেবল বানানো