எளிய தமிழில் Computer Vision 6. எண்களின் அணிகளும் (arrays) செய்முறைகளும்

படங்களைக் கணினியில் எண்களாக சேமித்து வைக்கிறோம் என்று பார்த்தோம். எண்களாக எந்த முறையில் சேமித்து வைக்கிறோம் என்பதை இங்கு மேலும் கொஞ்சம் விவரமாகப் பார்ப்போம்.

வரிசைகளும் (rows) பத்திகளும் (columns) தடங்களும் (channels)

5 க்கு 4 சிபநீ படம்

5 க்கு 4 சிபநீ படம்

எடுத்துக்காட்டாக இந்த எளிய படத்தைப் பார்ப்போம். இந்தப் படத்தில் நான்கு வரிசைகளும் (rows) ஒவ்வொரு வரிசையிலும் ஐந்து பத்திகளில் (columns) படவலகுகளும் (pixels) உள்ளன. ஒவ்வொரு படவலகிலும் உள்ள வண்ணத்தை மூன்று சிபநீ (RGB) அடிப்படை வண்ணங்களாகப் பிரித்து மூன்று தடங்களில் சேமிக்கப் போகிறோம். இதைக் கணினியில் சேமிக்க நமக்கு ஒரு முப்பரிமாண அணி (array) தேவை. முதல் பரிமாணம் வரிசைகள், இரண்டாவது பரிமாணம் பத்திகள், மூன்றாவது பரிமாணம் ஒவ்வொரு படவலகிலும் சிபநீ (RGB) வண்ண மதிப்புகள். 

பட அணி விளக்கம்

பட அணி விளக்கம்

செறிவும் (intensity) வண்ண ஆழமும் (colour depth)

ஒரு இரும எண்ணில் (binary digit or bit) 0 மற்றும் 1 ஆக இரண்டு மதிப்புகளை சேமித்து வைக்கலாம். சாதாரணமான சாம்பல் அளவீட்டுப் படங்களில் ஒவ்வொரு படவலகும் மதிப்பு 0 முதல் 255 வரை இருக்கும். ஆகவே எட்டு இரும எண்கள் (8 bits) தேவை. துல்லியமான சாம்பல் அளவீட்டுப் படங்கள் 16 இரும எண்களில் (16 bits) சேமிக்கப்படுகின்றன. இவற்றில் 65536 வண்ணச் சாயல்கள் உள்ளன. உண்மை நிறப் (true colour) படங்களுக்கு வண்ண ஆழம் அதிகம் தேவை. ஆகவே இவை 24 இரும எண்களில் (24 bits) சேமிக்கப்படுகின்றன. இவற்றில் சுமார் 16 மில்லியன் வண்ணங்கள் உள்ளன.

படங்களுக்கு மிகவும் பொதுவான கோப்பு வடிவங்களில் சில: GIF, JPEG, PNG.

இடஞ்சார்ந்த வடிகட்டுதல் (spatial filtering or masking) செய்முறை

இடஞ்சார்ந்த வடிகட்டுதல்

இடஞ்சார்ந்த வடிகட்டுதல்

ஒரு சாம்பல் அளவீட்டுப் படத்தை மென்மையாக்க (softening) வேண்டும் என்று வைத்துக்கொள்வோம். ஒரு படவலகின் எண்ணை அது மற்றும் அதைச் சுற்றியுள்ள எட்டு படவலகுகளின் எண்களின் சராசரியாக மாற்றலாம். இம்மாதிரி செயல்முறையை இடஞ்சார்ந்த வடிகட்டுதல் (spatial filtering) என்று சொல்கிறோம். படத்திலுள்ள எடுத்துக்காட்டில் புதிய மதிப்பைத் தீர்மானிக்க 3 X 3 படவலகு சாளரம் பயன்படுத்தப்படுகிறது. 

படம் உருமாற்றம் (Image Transform)

படம் உருமாற்றம்

படம் உருமாற்றம்

  • பிரதிபலிப்பு (Reflection): இது ஒரு படத்தை கண்ணாடியில் தெரியும் பிரதிபலிப்பு பிம்பமாக மாற்றுவது. 
  • படத்தை சுழற்றுதல் (Image rotation): கொடுத்த படத்தை ஒரு குறிப்பிட்ட கோணத்தில் சுழற்றுவது. 
  • பட அளவை மாற்றுதல் (Image scaling): படத்தின் பரிமாணங்களை பெரிதாக்குதல் அல்லது சிறிதாக்குதல்.
  • படத்திலுள்ள ஒரு பொருளின் இடமாற்றல் (Translation): படத்திலுள்ள ஒரு பொருளை மற்றொரு இடத்துக்கு மாற்றுவது.
  • கோணலாக்குதல் (Skewing or Shearing): படத்தின் வடிவத்தை சாய்ப்பதை கோணலாக்குதல் என்று சொல்கிறோம். 

இம்மாதிரி மாற்றங்கள் செய்வதற்கு நாம் அணியில் (array) எண்களை ஒவ்வொன்றாக மாற்றி அமைக்க வேண்டும். நமக்குத் தேவையான ஒவ்வொரு விளைவுக்கும் சில வினைச்சரங்கள் (algorithms) உள்ளன. செயல்திறன் மிக்க வினைச்சரங்களை நிரல்களில் செயல்படுத்தி இருந்தால் நமக்கு வசதியாக இருக்குமல்லவா? இம்மாதிரி கட்டற்ற திறந்த மூல நிரலகங்கள் சிலவற்றை அடுத்த கட்டுரையில் பார்ப்போம்.

நன்றி

  1. Image processing with numpy by Martin McBride
  2. Spatial Enhancements by Humboldt State University
  3. How Transform (Coverage) works – Esri

இத்தொடரில் அடுத்த கட்டுரை: பைதான் நிரல் மொழியில் மென்பொருட்கள்

நம்-பை (Numpy). சை-பை (Scipy). ஸ்கிமேஜ் (Skimage or scikit Image). இமேஜ்மேஜிக் (ImageMagick). பில்லோ (Pillow or Python Imaging Library – PIL). மேட்பிளாட்லிப் (Matplotlib).

ashokramach@gmail.com

%d bloggers like this: