ফটোশপের "ব্ল্যাক অ্যান্ড হোয়াইট" অ্যাডজাস্টমেন্ট লেয়ারের পিছনে অ্যালগরিদম কী?


11

ফটোশপে "ব্ল্যাক অ্যান্ড হোয়াইট" সামঞ্জস্য স্তরটির পিছনে অ্যালগোরিদমকে কেউ ব্যাখ্যা করতে পারেন?

ফটোশপের স্ক্রিনশট

আমাকে এমন একটি অ্যাপ্লিকেশনের জন্য সি ++ ব্যবহার করে পুনরুত্পাদন করতে হবে যা একটি চিত্র থেকে নন-রেড / ম্যাজেন্টা (ইশ) পিক্সেলের উপর জোর দেয় (শতাংশের মতো কনফিগারযোগ্য সহনশীলতা সহ), এবং এই সংস্থানটি এমন আচরণ প্রদর্শন করেছে যা আমি প্রত্যাশা করছি।


এখনও এটি পুনরুত্পাদন করতে পারেনি, তবে আমি একটি চিহ্ন খুঁজে পেয়েছি:

প্রতিটি পিক্সেল দুটি নিয়ন্ত্রণ পর্যন্ত সংজ্ঞায়িত করা হয়, একটি অ্যাডিটিভ (আরজিবি) এবং একটি সাবটেক্টিভ (সিএমওয়াই)।


আপনি কি কখনও অ্যালগরিদম বের করার কাছাকাছি পৌঁছেছিলেন? আমি এটিও বের করার চেষ্টা করছি।
পিজ্জাফিল্ম

না, আমি করিনি: /
ব্লেমু

উত্তর:


4

আমি ম্যাটল্যাবে পুরোপুরি অ্যালগরিদমের অনুলিপি করেছি (@ ইভান ককির উত্তরের ভিত্তিতে ):

function [ mO ] = ApplyBlackWhiteFilter( mI, vCoeffValues )

FALSE   = 0;
TRUE    = 1;

OFF = 0;
ON  = 1;

numRows = size(mI, 1);
numCols = size(mI, 2);
dataClass = class(mI);

numCoeff    = size(vCoeffValues, 1);
hueRadius   = 1 / numCoeff;
vHueVal     = [0:(numCoeff - 1)] * hueRadius;

mHsl = ConvertRgbToHsl(mI);
mO = zeros(numRows, numCols, dataClass);

vCoeffValues = numCoeff * vCoeffValues;

for jj = 1:numCols
    for ii = 1:numRows
        hueVal = mHsl(ii, jj, 1);
        lumCoeff = 0;

        % For kk = 1 we're dealing with circular distance
        diffVal     = min(abs(vHueVal(1) - hueVal), abs(1 - hueVal));
        lumCoeff    = lumCoeff + (vCoeffValues(1) * max(0, hueRadius - diffVal));
        for kk = 2:numCoeff
            lumCoeff = lumCoeff + (vCoeffValues(kk) * max(0, hueRadius - abs(vHueVal(kk) - hueVal)));
        end

        mO(ii, jj) = mHsl(ii, jj, 3) * (1 + lumCoeff);
    end
end


end

মনোযোগ দিন যে রূপান্তরটি থেকে vPhotoshopValuesকরা vCoeffValuesউচিত vCoeffValues = (vPhotoshopValues - 50) ./ 50
ফটোশপের মানগুলি [-200, 300] এ থাকায় এবং [-5, 5] এর সাথে রৈখিকভাবে ম্যাপ করা উচিত 50 -> 0

এখানে ফটোশপের সাথে একটি তুলনা করা হল:

এখানে চিত্র বর্ণনা লিখুন

সর্বাধিক ত্রুটি [0, 255] রেঞ্জের 1 এরও কম।

সম্পূর্ণ কোড আমার পাওয়া যায় StackExchange সিগন্যাল প্রসেসিং Q688 GitHub সংগ্রহস্থলের প্রয়োগ


8

প্রতিটি (রঙ) চিত্র আরজিবি উপাদান দিয়ে গঠিত। যখন আপনি কেবল রেড উপাদানগুলিতে সমস্ত পিক্সেলের জন্য একটি ধ্রুবক মান যুক্ত (বা হ্রাস) করবেন তখন আপনি রেড ট্যাবটি ডানদিকে নিয়ে যাওয়ার সমতুল্য দেখতে পাবেন এবং একইভাবে একটি ধ্রুবক দ্বারা রেড উপাদান হ্রাস করার বিপরীত প্রভাব হবে।

বুদ্ধিমানের মতো আপনি বর্ণনা হিসাবে একটি নির্দিষ্ট মান দ্বারা প্রতিটি উপাদান বৃদ্ধি / হ্রাস করতে পারবেন। আপনি যদি একই পরিমাণে সমস্ত আরজিবি উপাদান বাড়িয়ে / হ্রাস করেন তবে এটি উজ্জ্বলতার পরিবর্তনের সমতুল্য (মূলত আপনি হোয়াইট রঙ যুক্ত / অপসারণ করছেন)।

সায়ান, ব্লু, ম্যাজেন্টা - সিএমওয়াইকে কালার স্পেসে এ জাতীয় রূপান্তরটির সাথে মিল রয়েছে। (তবে আমার ধারণা, এই রঙের জায়গার মধ্যে ব্লু সায়ান এবং হলুদ মিশ্রণের সাথে মিলে যায় So সুতরাং এটি কিছুটা জটিল The রূপান্তরটি সবার জন্য মূলত একই।

শেষ উপাদান টিন্ট: and হিউ এবং স্যাচুরেশন same একই ক্রিয়াকলাপের সাথে মিলে যায় তবে এখানে চিত্রগুলি প্রথমে এইচএসভি মডেলে রূপান্তরিত হয় এবং তারপরে এইচইউ এবং স্যাচুরেশন স্বাধীনভাবে যোগ / বিয়োগ করা হয়।

সংশ্লিষ্ট সংখ্যায় ডায়াল চিহ্নিতকারীগুলির সঠিক সম্পর্ক সম্পর্কে আমি জানি না তবে আপনি ব্যবহারিক মানগুলি চেষ্টা করে বের করতে পারেন।


1
আরজিবি এবং সিএমওয়াই রয়েছে, সুতরাং আপনাকে যা করতে হবে তা হ'ল দুটি রঙের জায়গার যে কোনওটিতে রূপান্তর করা এবং আপনি নিজের পছন্দমতো সামঞ্জস্য করতে পারেন। একবার আপনি সামঞ্জস্য হয়ে গেলে অন্যান্য ট্রিপলেট আপডেট করতে ভুলবেন না।
জোনাস

আমি বিশ্বাস করি এই উত্তরটি ভুল এবং অসম্পূর্ণ। ১. পিএস বাস্তবায়নে, "নীল" স্লাইডারটি সায়ান-ইশ পিক্সেলের উজ্জ্বলতাকে প্রভাবিত করে না এবং "সায়ান" স্লাইডার স্লাইডিং নীল-ইশ পিক্সেলের উজ্জ্বলতাকে প্রভাবিত করে না। এই উত্তরে বর্ণিত এই পদ্ধতিটি সেভাবে কাজ করবে না। ২. আপনি কীভাবে বর্ণনা করবেন না, আরজিবিসিএমওয়াই উপাদানগুলি কারসাজির পরে, তারা গ্রেস্কেলে রূপান্তরিত হয় (যদিও এটি সম্ভবত কোনও dotProduct(color, vec3(0.2989, 0.5870, 0.1140)অপারেশন)। ৩. নীল কোনও রঙের জায়গাতে "সায়ান এবং হলুদ মিশ্রণের সাথে মিল রাখে না"।
স্টিফান মনোভ

৪. আপনি উল্লেখ করবেন না যে গ্রেফস্কেলে রূপান্তরিত হওয়ার পরে এই রঙিন অপারেশনটি সঞ্চালিত হয়েছিল এবং তার আগে নয়।
স্টিফান মনোভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.