আপনি যদি RAW ফাইলগুলি প্রক্রিয়া করতে পারেন তবে আপনার কাছে RGRGRG এবং GBGBGB সারি (বা সম্ভবত RGBGRGBG সারিগুলি) সমন্বিত একটি বেয়ার পিক্সেল অ্যারে থাকবে You আপনি সমস্ত আর এবং বি পিক্সেল উপেক্ষা করতে পারবেন, জি পিক্সেলগুলি যোগ করতে পারেন, স্কোয়ার রুটটি ধরুন ( যেহেতু লাল বা নীল বর্ণের তুলনায় দ্বিগুণ সবুজ পিক্সেল রয়েছে), এবং জি পিক্সেলের অর্ধেক সংখ্যায় বিভক্ত। এটি আপনাকে আপনার ফটোতে "সবুজ" এর জন্য সঠিক ওজনযুক্ত গড় দেয় should তারপরে আপনি লাল এবং নীল রঙের গড় গড় নিতে পারবেন এবং তিনটি গড় থেকে আপনার সবুজ শতাংশ গণনা করতে পারেন।
আরও নির্ভুল হওয়ার জন্য, আপনি লাল, সবুজ এবং নীল সেন্সর পিক্সেলের জন্য যথাযথ ওজনকে আরও বেশি গুরুত্ব দিতে পারেন, যেহেতু সিএমওএস সেন্সরের আলোর প্রতিটি তরঙ্গ দৈর্ঘ্যের প্রতি বিভিন্ন সংবেদনশীলতা থাকে। ওজনগুলি সাধারণত সেন্সরের উপর নির্ভর করে। এটি সহজ পদ্ধতির হবে।
দিনের সময়, বিভিন্ন ধরণের কৃত্রিম আলো ইত্যাদির কারণে রঙিন কাস্ট অ্যাকাউন্টের জন্য অ্যাকাউন্ট তৈরি করার জন্য লাইটরুমের মতো কোনও সরঞ্জামে প্রতিটি ফটো প্রাকপ্রসেস করা আরও উপযুক্ত হতে পারে প্রথমে সাদা ভারসাম্য সংশোধন করতে, তারপরে স্ট্যান্ডার্ড আরজিবি পিক্সেল চিত্রগুলিতে আপনার গণনা সম্পাদন করুন। আরএডাব্লু সেন্সর ডেটা প্রক্রিয়াজাতকরণের বিপরীতে, আপনি সামগ্রিকভাবে সবুজ উপাদানকে গড় পরিবর্তে পিক্সেল "সবুজ বিশুদ্ধতা" এর উপর ভিত্তি করে আপনার গণনাটি ওজন করতে চান। একটি পিক্সেল যত বেশি খাঁটি সবুজ, তত বেশি তার ওজন বনাম পিক্সেল যা বেশি লাল বা নীল। প্রসেসিংয়ের আগে সাদা ভারসাম্যকে স্বাভাবিক করে তোলার ফলে মেঘের আচ্ছাদন, দিনের সময়, seasonতু ইত্যাদি ইত্যাদির মতো গুরুত্বপূর্ণ উপাদানগুলির জন্য অ্যাকাউন্ট করার জন্য ডিজাইন করা ট্যানজেন্টগুলির সাথে অন্যথায় মোটামুটি সহজ গণনা জটিলতার কোনও প্রয়োজনকে দূর করা উচিত processing
আপনি এখনও অ-ঘটনামূলক পিক্সেল যেমন আকাশের বৃহত অঞ্চলগুলির জন্য অ্যাকাউন্ট করতে চাইতে পারেন। আপনি কী অর্জন করতে চাইছেন সে সম্পর্কে আরও কিছু না জেনে আমি সত্যিই সেই অঞ্চলে আপনাকে অনেক বেশি সহায়তা করতে পারি না। সামগ্রিকভাবে একটি "ফটোগ্রাফ" এর সবুজ রঙ সবুজ থেকে লাল এবং নীল অনুপাতের গণনা করে সবচেয়ে ভাল পরিবেশন করা হবে, যার মধ্যে "আকাশ" পিক্সেল অন্তর্ভুক্ত থাকবে।
আপনার পদ্ধতি হিসাবে, এটি বলা ছাড়াই উচিত যে আপনি যদি একই ক্যামেরার সেটিংস সহ একই আলোকসজ্জার (একই তীব্রতা এবং রঙের তাপমাত্রা) এর অধীনে ছবিগুলি গ্রহণ করেন তবে 18% ধূসর কার্ডের মতো সাধারণ বেসলাইনের সাথে মিটার করা স্পষ্টতই যাবে আপনার ফলাফলগুলি স্বাভাবিক করার দিকে একটি দীর্ঘ পথ। ডিজিটাল দিয়ে, কোনও প্রকারের বৈষম্যগুলি র প্রসেসিং সফ্টওয়্যার এবং একটি বেসিক হোয়াইট ব্যালেন্স পিকারের সরঞ্জাম দিয়ে সংশোধন করা যেতে পারে, সুতরাং RAW তে অঙ্কুর নিশ্চিত করুন be
আপনার ফটোগুলির "সবুজত্ব" গণনা করার জন্য আরও কিছু অন্তর্দৃষ্টি দেওয়ার জন্য। স্পষ্টতই সহজ উপায় রয়েছে যেমন সবুজ বেয়ার পিক্সেল বনাম নীল এবং লাল ওজন গণনা করা বা আরজিবি পিক্সেলের লাল / নীল বিশুদ্ধতার সাথে সবুজ বিশুদ্ধতার গণনা করা। আপনি যদি আরও উপযুক্ত রঙের জায়গায় যেমন এইচএসভি ( হিউ / স্যাচুরেশন / মান , কখনও কখনও এইচএসবি নামে পরিচিত, মানকে উজ্জ্বলতার সাথে প্রতিস্থাপন করে) রূপান্তর করেন এবং আপনার সবুজ পরিমাণকে এইচইউ স্পেসে একটি কার্ভ ব্যবহার করে গণনা করেন তবে আপনার আরও ভাগ্য হতে পারে । (দ্রষ্টব্য: এইচএসএল একটি আলাদা ধরণের রঙের স্থান, এবং কোনও ফটোতে কতটা "সবুজ" আছে তা গণনা করার জন্য এটি সম্ভবত আদর্শ নয়, তাই আমি এইচএসভি ব্যবহার করব these আপনি এখানে রঙিন স্পেসগুলি সম্পর্কে আরও শিখতে পারেন।) খাঁটি সবুজ (স্যাচুরেশন বা মান নির্বিশেষে) 120 of এর একটি আঙুলের কোণে পড়ে এবং আপনি লাল (0 at এ) বা নীল (240 at এ) দিকে অগ্রসর হওয়ায় সেখান থেকে পড়ে যান। 240 ° এবং 360 ° এর মধ্যে, স্যাচুরেশন বা মান নির্বিশেষে পিক্সেলটিতে সবুজ শূন্যের পরিমাণ হবে।
চিত্র 1. হিউ প্লট - হিউ ডিগ্রিগুলিতে সবুজ বিশুদ্ধতা
আপনার নির্দিষ্ট চাহিদা মেটাতে আপনি প্রকৃত ওজনকে বক্ররেখা সামঞ্জস্য করতে পারেন, তবে একটি সাধারণ বক্ররেখার নিম্নলিখিতের মতো হতে পারে:
range = 240
period = range * 2 = 240 * 2 = 480
scale = 360/period = 0.75
pureGreen = sin(scale * 120)
এর মান 1.0pureGreen
হওয়া উচিত । কম্পিউটিংয়ের জন্য একটি সূত্রটি নিম্নলিখিতভাবে করা যেতে পারে:greenness
sin(scale * hue) } 0 > hue > 240
greenness =
0 } 240 <= hue <= 360 || hue == 0
hue
আপনার HSV রঙের মান থেকে রঙ ডিগ্রী। radius
অর্ধেক period
যা সবুজ কিছু মাত্রায় উপস্থিত। scale
Adjusts আমাদের সময়ের পাপ বক্ররেখা, যেমন যে sin(scale * hue)
পীক (রিটার্ন 1.0) আপনি বিশুদ্ধ সবুজ (যে সবুজ শাক তীব্রতা উপেক্ষা) হবে ঠিক যেখানে। যেহেতু পরিমাণটি greenness
কেবল আমাদের পিরিয়ডের প্রথমার্ধে বৈধ, তাই সবুজতা গণনা কেবল তখনই বৈধ হয় যখন হিউ 0 than এর চেয়ে বেশি হয় এবং 240। এর চেয়ে কম হয় এবং অন্য কোনও বর্ণের জন্য এর শূন্য হয়।
আপনি পিরিয়ডটি সামঞ্জস্য করে ওজনকে সামঞ্জস্য করতে পারেন, আপনি যে পরিসীমাটির মধ্যে নির্ধারণ করেছেন green
তার মধ্যে উপস্থিত থাকতে পারে (উদাহরণস্বরূপ 0 থেকে 240 এর 40 > hue > 200
পরিবর্তে আপনি তার পরিবর্তে একটি সীমাবদ্ধতা নির্ধারণ করতে পারেন ), এবং এই সীমার বাইরে যে কোনও কিছুকে 0 এর সবুজতা থাকতে পারে এটি লক্ষ করা উচিত যে এটি গাণিতিকভাবে সঠিক হবে, তবে এটি সম্পূর্ণরূপে বোধগম্যভাবে সঠিক নাও হতে পারে। আপনি অবশ্যই pure green
হলুদ প্রতি আরও বিন্দু সামঞ্জস্য করার জন্য সূত্রটি টিচ করতে পারেন (যা আরও অনুধাবন করে সঠিক ফলাফল আনতে পারে), বক্ররেখার প্রশস্ততা বাড়িয়ে দেবে এবং খাঁটি সবুজ রঙের ব্যান্ডটিকে একক নয় বরং একক রঙে প্রসারিত করতে পারে রঙ মান, ইত্যাদি মোট মানুষের প্রতক্ষ্যজ সঠিকতা জন্য, একটি আরো জটিল এলগরিদম প্রক্রিয়াকৃত সিআইই XYZ এবং সিআইই এল একটি খ *স্থান প্রয়োজন হতে পারে। (দ্রষ্টব্য: এক্সওয়াইজেড এবং ল্যাব স্পেসে কাজ করার জটিলতা আমি এখানে যা বর্ণনা করেছি তার চেয়ে নাটকীয়ভাবে বৃদ্ধি পায়))
কোনও ছবির সবুজতা গণনা করতে, আপনি প্রতিটি পিক্সেলের সবুজতা গণনা করতে পারেন, তারপরে গড়ে উত্পাদন করতে পারেন। তারপরে আপনি সেখান থেকে অ্যালগরিদম নিতে পারেন এবং আপনার নির্দিষ্ট প্রয়োজনের জন্য এটি টুইট করতে পারেন।
ইজিআরজিবিতে আপনি রঙিন রূপান্তরগুলির জন্য অ্যালগরিদমগুলি সন্ধান করতে পারেন , যেমন আরজিবি থেকে এইচএসভি এর মতো:
var_R = ( R / 255 ) // Red percentage
var_G = ( G / 255 ) // Green percentage
var_B = ( B / 255 ) // Blue percentage
var_Min = min( var_R, var_G, var_B ) //Min. value of RGB
var_Max = max( var_R, var_G, var_B ) //Max. value of RGB
del_Max = var_Max - var_Min //Delta RGB value
V = var_Max //Value (or Brightness)
if ( del_Max == 0 ) //This is a gray, no chroma...
{
H = 0 //Hue (0 - 1.0 means 0° - 360°)
S = 0 //Saturation
}
else //Chromatic data...
{
S = del_Max / var_Max
del_R = ( ( ( var_Max - var_R ) / 6 ) + ( del_Max / 2 ) ) / del_Max
del_G = ( ( ( var_Max - var_G ) / 6 ) + ( del_Max / 2 ) ) / del_Max
del_B = ( ( ( var_Max - var_B ) / 6 ) + ( del_Max / 2 ) ) / del_Max
if ( var_R == var_Max ) H = del_B - del_G
else if ( var_G == var_Max ) H = ( 1 / 3 ) + del_R - del_B
else if ( var_B == var_Max ) H = ( 2 / 3 ) + del_G - del_R
if ( H < 0 ) H += 1
if ( H > 1 ) H -= 1
}