ইমেজ কি জিনিস

ইমেজ কি জিনিস

ফটোই তো! তাই না?

ইমেজ কি আসলে?

ইমেজ শব্দের আভিধানিক বাংলা হচ্ছে - বিম্ব / প্রতিবিম্ব। একটু Geeky সেন্সে বললে, কোন কিছু থেকে আলো এসে আমাদের চোখে পড়লে আমরা যা দেখি তাই বিম্ব বা ইমেজ। কিন্তু এই সংজ্ঞাটা না কেমন জানি । আমাদের দৈনন্দিন অভিজ্ঞতা বলে যে ইমেজ মানে হচ্ছে যেটা কিনা আমরা ক্যামেরা দিয়ে তুলি, অর্থাৎ ইমেজ মানে হচ্ছে ফটো । তাহলে এর সাথে মানুষের চোখের দেখার সম্পর্ক কী?

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

ক্যামেরাও একই ভাবে কাজ করে। এখন ক্যামেরার তো আর মস্তিষ্ক নেই! তার আছে প্রসেসর। সে লেন্স (চোখ) থেকে আলো পায়, সে অনুযায়ী ছবি দেখায়।

img

ক্যামেরা তো ক্লিক করলে ছবি তোলে, আপনার চোখ প্রতি মিলিসেকেন্ডে কত ছবি তুলছে আন্দাজ করে দেখেন একবার!

  • মিলিসেকেন্ড কেন? মানুষের মস্তিষ্ক জাদুর বাক্স হতে পারে তবে তার কিছু সীমাবদ্ধতা আছে । মিলিসেকেন্ড রেঞ্জের চাইতে ছোট সময়ে কোন কিছু ঘটলে সে ধরতে পারে না। আপনার চোখ সেটা দেখলেও লাভ নাই । মস্তিষ্ক প্রসেস করতে পারেনি, গান্ধীর বাঁদরের মতন আপনিও কিছু দেখেন নি । (যদি না আপনি সুপার হিউম্যান হন)

তাহলে ইমেজ প্রসেসিং কী করে?

এই যে বললাম, ক্যামেরাতে প্রসেসর থাকে । তার তো আলো থেকে তথ্য নিয়ে সেগুলোকে প্রসেস করতে হয়। কীভাবে করে সে? কী ধরণের এলগোরিদম কাজ করে সেখানে? এগুলো ইমেজ প্রসেসিং এর কাজ আসলে ।

ইমেজ এবং সিগন্যাল

সিগন্যাল শব্দটা শুনলে আমাদের মাথায় প্রথমে কি আসে? ট্রাফিক সিগন্যাল? ট্রেনের সিগন্যাল? ইত্যাদি ইত্যাদি । আমরা স্বাভাবিকভাবে সিগন্যাল বলতে বুঝি এমন কিছু যেটা আমাদের তথ্য দেয় । কিংবা কিছুর দিকে ইঙ্গিত করে । ইমেজ এবং সিগন্যাল একে ওপরের সঙ্গে ওতপ্রোত ভাবে জড়িত।

আলো ছাড়া আপনি ছবি পাবেন না । কথাটা আংশিক সত্য । আলো জগতের একমাত্র সিগন্যাল না । আলো এক প্রকার তড়িৎ চুম্বকীয় তরঙ্গ। আর তরঙ্গদৈর্ঘ্য এমন যে , তড়িৎ চুম্বকীয় তরঙ্গের বিশাল স্পেকট্রামের মাঝে একমাত্র তাকেই দেখা যায়। বাকিগুলা সব অদৃশ্য হয়ে ঘুরে বেড়ায়। (কি সাংঘাতিক তাই না!)

img

যেকোন তরঙ্গ তথ্য বয়ে বেড়াতে পারে । ফোন কথা বলছেন? নেটওয়ার্ক এর তরঙ্গ আপনার কথা বয়ে নিয়ে যাচ্ছে গন্তব্যে। টেলিভিশন দেখছেন? তরঙ্গ স্যাটেলাইট থেকে আসছে আপনার পছন্দের টিভি শো নিয়ে । অর্থাৎ আপনি সিগন্যাল পাচ্ছেন।

আলো ও এক প্রকার সিগন্যাল

অর্থাৎ, আলো ছাড়া ছবি পাবেন না এইটাকে সঠিক ভাষায় বলা যায় যে সিগন্যাল ছাড়া ছবি পাবেন না । এখন মাথা চুলকিয়ে জিজ্ঞেস করতে পারেন, আলো না থাকলে ছবি যেটা পাবো অন্য সিগন্যাল থেকে সেটা দিয়ে আমার লাভ কি? ভালো প্রশ্ন। আপনার বোধহয় কোনদিন এক্স রে, আল্ট্রাসনোগ্রাফি, ইসিজি এসব করানোর দরকার পড়েনি। ওখানের ছবিগুলো কীভাবে আসে ভেবে দেখেন । ৫ মিনিটের জন্য বিরতি। Brainstorming!

ইমেজ ২ প্রকার

সিগন্যাল থেকে ইমেজ আসে । সিগন্যাল অ্যানালগ বা ডিজিটাল হয় । তাই ইমেজ ও ২ প্রকার । অ্যানালগ আর ডিজিটাল । আমরা শুধু ডিজিটাল ইমেজ নিয়ে কথা বলবো । কারণ অ্যানালগ ইমেজ প্রসেসিং এর জন্য সিগন্যাল প্রসেসিং সম্পর্কে বেসিক আইডিয়া থাকা জরুরি। তাই সেদিকে যাচ্ছি না । শুধু বেসিক কিছু বিষয় নিয়ে কথা বলবো যাতে টার্মিনোলজি গুলো বুঝতে সুবিধা হয় ।

কম্পিউটারে ইমেজ কীভাবে লোড হয়?

কম্পিউটার মেমোরিতে যখন আমরা ডিজিটাল ইমেজ লোড করি তখন সেটা লোড হয় একটা ম্যাট্রিক্স হিসেবে । প্রোগ্রামিং টার্মিনোলজিতে বললে মাল্টি ডিমেনশনাল অ্যারে হিসেবে। ধরা যাক আপনার কাছে একটা ১৯২০ বাই ১০৮০ রেজুলেশনের ছবি আছে। তাহলে ম্যাট্রিক্সে ভার্টিকালি পিক্সেল আছে ১০৮০ টা আর, হরাইজন্টালি পিক্সেল আছে ১৯২০ টা । অর্থাৎ ইমেজের রেজুলেশন যদি X by Y হয় , তাহলে সেটা একটা [X][Y] ম্যাট্রিক্সে লোড হবে আর, এই ১৯২০ বাই ১০৮০ এর জন্য ম্যাট্রিক্স টা হবে, [১৯২০][১০৮০]

img

ম্যাট্রিক্সের ইলিমেন্ট গুলো আসলে কি তাহলে?

ইলিমেন্ট গুলো হচ্ছে পিক্সেল ভ্যালু । এখন এইটা কি জিনিস?

ম্যাথম্যাটিকালি একটা ইমেজ কে যদি ফাংশন হিসেবে দেখাই তাহলে দাঁড়াবে এমন :

  • f(x, y) = i, যেখানে (x,y) হচ্ছে ম্যাট্রিক্সের ইলিমেন্টের ইন্ডেক্স মানে পিক্সেলের ইনডেক্স আর i হচ্ছে সেই ইমেজের সেই পিক্সেলে আলোর পরিমাণ বা লুমিনোসিটি আসলে কতটুকু। যদি i = 0 হয় তাহলে ধরে নিতে হবে সেখানে কোন আলো নেই এবং পিক্সেলের রং কালো ।

img

অর্থাৎ , ছবিতে এত সব রং দেখি সব নির্ভর করছে পিক্সেলের ভ্যালু কত তার উপর ।

পিক্সেল ভ্যালু তাহলে কই পায়?

সহজ উত্তর । ছবি যদি আলো থেকে পাই, ছবিতে আলো কত সেটাও পাবো আলো থেকেই! ক্যামেরা যখন ছবি তুলছে, তখন সে প্রসেসিং এর সময় ভ্যালুটা সেট করে নিবে।

টার্মিনোলজি গুলো কেমন যেন!

হ্যাঁ একটু ঝামেলা মার্কা । তাই আমি এখানে লিখে অধ্যায়টা অযথা লম্বা করতে চাচ্ছি না । এতটুকু জেনে রাখুন যে যেকোন ইমেজ, যে ক্যামেরা দিয়েই তোলা হোক না কেন একটা ম্যাট্রিক্স বাদে আর কিছুই না ।

Some other posts you may also like...

Animated gif loader in Java

Animated gif loader in Java

Let's load some gifs in a JFrame

The curious genericness of Associated Types

The curious genericness of Associated Types

To associate or not to associate is the question

Swift - PAT or Generics?

Swift - PAT or Generics?

Both do the same job, so, which one to use then?