কম্পিউটার

C প্রোগ্রাম RGB রঙের মডেলকে HSV রঙের মডেলে পরিবর্তন করতে


পূর্ণসংখ্যার আকারে দেওয়া RGB রঙের পরিসর; কাজ হল RGB রঙ পরিসর রূপান্তর করে এর উপযুক্ত HSV রঙ খুঁজে বের করা

RGB কালার মডেল কি

লাল, সবুজ এবং নীল তিনটি রঙের RGB রঙের মডেল। RGB মডেল হল একটি রঙিন মডেল যা ডিসপ্লে প্রযুক্তিতে ব্যাপকভাবে ব্যবহৃত হয়; এটি একটি সংযোজনকারী মডেল যেখানে আমরা একটি ডিসপ্লে ডিভাইসে লক্ষ লক্ষ ভিন্ন রঙ তৈরি করতে বিভিন্ন তীব্রতার সাথে এই তিনটি রঙ যোগ করি৷

HSV কালার মডেল কি?

এইচএসভি রঙের মডেলের মধ্যে রয়েছে হিউ, স্যাচুরেশন, মান এইচএসবি (হিউ, স্যাচুরেশন, উজ্জ্বলতা) নামেও পরিচিত। এইচএসভি হল আরজিবি রঙের মডেলের বিকল্প উপস্থাপনা। এটি এমনভাবে সারিবদ্ধ করা হয়েছে যে কীভাবে মানুষের দৃষ্টি রঙ তৈরির বৈশিষ্ট্যগুলি উপলব্ধি করে। প্রাকৃতিক রঙের স্কিমের কারণে এই রঙের মডেলটি প্রায়শই শিল্পীরা ব্যবহার করেন। HSV-এর তিনটি বৈশিষ্ট্য যোগের পাশাপাশি বিয়োগমূলকও হতে পারে।

প্রোগ্রামে আমাদের যা করতে হবে

আমাদের আরজিবি মডেল মানের ব্যবহারকারীর কাছ থেকে ইনপুট নিতে হবে এবং তারপর গাণিতিকভাবে HSV রঙের মডেলে আউটপুট গণনা করতে হবে।

উদাহরণ

ইনপুট:r =31, g =52, b =29 আউটপুট:h s v =(114.782608, 44.230770, 20.392157) ইনপুট:r =129, g =88, b =47 আউটপুট:h s v. 50, 508 (30 =50, 350) /প্রে> 

প্রদত্ত সমস্যার সমাধান করার জন্য আমরা যে পদ্ধতি ব্যবহার করব −

  • 3টি রঙে ইনপুট নেওয়া হচ্ছে লাল(r), সবুজ(g) এবং নীল(b)৷
  • সমস্ত রঙের মান 255 দিয়ে ভাগ করা।
  • এখন cmax, cmin এবং পার্থক্য গণনা করুন।
  • চেক করুন −
    • যদি cmax এবং cmin সমান 0 হয়, তাহলে Hue বা h হবে 0।
    • যদি cmax লাল(r) এর সমান হয় তাহলে Hue(h) =(60 * ((g – b) / diff) + 360) % 360।
    • যদি cmax সবুজ(g) এর সমান হয় তাহলে Hue(h) =(60 * ((b – r) / diff) + 120) % 360।
    • যদি cmax নীল(b) এর সমান হয় তাহলে Hue(h) =(60 * ((r – g) / diff) + 240) % 360।
  • স্যাচুরেশন খুঁজতে আমরা −
      পরীক্ষা করব
    • যদি cmax =0 তাহলে Saturation (s) =0.
    • যদি cmax শূন্যের সমান না হয় তাহলে Saturation (s) =(diff/cmax)*100
  • মান গণনা -
    • মান (v) =cmax *100

অ্যালগরিদম

StartStep 1 -> ফাংশনে float max(float a, float b, float c) রিটার্ন (a> b)? (a> c ? a :c) :(b> c ? b :c) ধাপ 2 -> ফাংশনে float min (float a, float b, float c) রিটার্ন (a  ফাংশনে int rgb_to_hsv(float r, float g, float b) float ঘোষণা করুন h, s, v সেট করুন r =r / 255.0 সেট g =g / 255.0 সেট b =b / 255.0 সেট cmax =max(r, g, b) সেট cmin =min(r, g, b) সেট diff =cmax-cmin যদি cmax ==cmin তারপর, h =সেট করুন 0 End if Else if cmax ==r তারপর, সেট h =fmod((60 * ((g - b) / diff) + 360), 360.0) End Else যদি অন্যথায় cmax ==g তারপর, সেট h =fmod( (60 * ((b - r) / diff) + 120), 360.0) End Else যদি অন্যথায় cmax ==b তাহলে, h =fmod((60 * ((r - g) / diff) + 240 সেট করুন), 360.0) End Else if cmax ==0 হলে, Set s =0 End if Else Set =(diff/cmax) * 100 End Else v =cmax * 100; প্রিন্ট h, s, v ধাপ 4 -> int main(int argc, char const *argv[]) ঘোষণা করুন এবং শুরু করুন r =45, g =215, b =0 কল ফাংশন rgb_to_hsv(r, g, b)Stop

উদাহরণ

#include #include float max(float a, float b, float c) { ফেরত ((a> b)? (a> c ? a :c) :(b> c ? b :c));} float min(float a, float b, float c) { ফেরত (a  

আউটপুট

h s v=(107.441864, 100.000000, 84.313728)

  1. Windows 10 এ টাস্কবারের রঙ পরিবর্তন করা যাবে না

  2. একটি Samsung কীবোর্ডের রঙ পরিবর্তন করার 4টি উপায়

  3. উইন্ডোজ 10 এ টাস্কবারের রঙ কীভাবে পরিবর্তন করবেন

  4. Windows 11 এ টাস্কবারের রঙ কিভাবে পরিবর্তন করবেন?