কনভল্যুশন

ছবিতে লিনিয়ার কনভল্যুশন করতে, image.convolve() ব্যবহার করুন। কনভল করার একমাত্র যুক্তি হল একটি ee.Kernel যা একটি আকৃতি এবং কার্নেলের ওজন দ্বারা নির্দিষ্ট করা হয়। convolve() দ্বারা ইমেজ আউটপুটের প্রতিটি পিক্সেল হল কার্নেলের মান এবং কার্নেল দ্বারা আবৃত ইনপুট ইমেজ পিক্সেলের রৈখিক সমন্বয়। কার্নেলগুলি প্রতিটি ব্যান্ডে পৃথকভাবে প্রয়োগ করা হয়। উদাহরণস্বরূপ, আপনি উচ্চ-ফ্রিকোয়েন্সি তথ্য মুছে ফেলার জন্য একটি লো-পাস (মসৃণ) কার্নেল ব্যবহার করতে চাইতে পারেন। নিম্নলিখিত একটি Landsat 8 ইমেজে প্রয়োগ করা একটি 15x15 লো-পাস কার্নেলকে চিত্রিত করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Load and display an image.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318');
Map.setCenter(-121.9785, 37.8694, 11);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], max: 0.5}, 'input image');

// Define a boxcar or low-pass kernel.
var boxcar = ee.Kernel.square({
  radius: 7, units: 'pixels', normalize: true
});

// Smooth the image by convolving with the boxcar kernel.
var smooth = image.convolve(boxcar);
Map.addLayer(smooth, {bands: ['B5', 'B4', 'B3'], max: 0.5}, 'smoothed');

লো-পাস ফিল্টারের সাথে কনভোলিউশনের আউটপুট চিত্র 1 এর মতো দেখতে হবে। লক্ষ্য করুন যে কার্নেলের আর্গুমেন্টগুলি এর আকার এবং সহগ নির্ধারণ করে। বিশেষভাবে, units প্যারামিটারটি পিক্সেলে সেট করার সাথে, radius প্যারামিটার কেন্দ্র থেকে পিক্সেলের সংখ্যা নির্দিষ্ট করে যা কার্নেল কভার করবে। normalize সত্যে সেট করা থাকলে, কার্নেলের সহগ এক হবে। magnitude প্যারামিটার সেট করা থাকলে, কার্নেল সহগগুলি মাত্রা দ্বারা গুণিত হবে (যদি normalize সত্য হয়, তাহলে সহগগুলি magnitude যোগফল হবে)। যদি কার্নেল সহগগুলির কোনোটিতে একটি নেতিবাচক মান থাকে, normalize সত্যে সেট করলে সহগগুলির যোগফল শূন্য হয়ে যাবে।

boxcar_sf
চিত্র 1. ল্যান্ডস্যাট 8 চিত্র একটি মসৃণ কার্নেলের সাথে জড়িত। সান ফ্রান্সিসকো বে এলাকা, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র।

পছন্দসই চিত্র প্রক্রিয়াকরণ প্রভাব অর্জন করতে অন্যান্য কার্নেল ব্যবহার করুন। এই উদাহরণটি আইসোট্রপিক প্রান্ত সনাক্তকরণের জন্য একটি ল্যাপ্লাসিয়ান কার্নেল ব্যবহার করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Define a Laplacian, or edge-detection kernel.
var laplacian = ee.Kernel.laplacian8({ normalize: false });

// Apply the edge-detection kernel.
var edgy = image.convolve(laplacian);
Map.addLayer(edgy,
             {bands: ['B5', 'B4', 'B3'], max: 0.5, format: 'png'},
             'edges');

ভিজ্যুয়ালাইজেশন প্যারামিটারে ফর্ম্যাট স্পেসিফায়ার নোট করুন। আর্থ ইঞ্জিন দক্ষতার জন্য JPEG ফরম্যাটে কোড এডিটরের কাছে ডিসপ্লে টাইলস পাঠায়, তবে ছবির সীমানার বাইরে পিক্সেলের স্বচ্ছতা পরিচালনা করার জন্য প্রান্ত টাইলগুলি PNG ফর্ম্যাটে পাঠানো হয়। যখন একটি চাক্ষুষ বিচ্ছিন্নতা ফলাফল, PNG ফর্ম্যাট সেট একটি সামঞ্জস্যপূর্ণ প্রদর্শন ফলাফল. ল্যাপ্লাসিয়ান এজ ডিটেকশন কার্নেলের সাথে কনভলভ করার ফলাফল চিত্র 2 এর মত দেখতে হবে।

laplacian_sf
চিত্র 2. ল্যান্ডস্যাট 8 চিত্র একটি ল্যাপ্লাসিয়ান প্রান্ত সনাক্তকরণ কার্নেলের সাথে জড়িত। সান ফ্রান্সিসকো বে এলাকা, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র।

এছাড়াও অ্যানিসোট্রপিক প্রান্ত সনাক্তকরণ কার্নেল রয়েছে (যেমন সোবেল, প্রিউইট, রবার্টস), যেগুলির দিক kernel.rotate() দিয়ে পরিবর্তন করা যেতে পারে। অন্যান্য নিম্ন পাস কার্নেলের মধ্যে রয়েছে একটি গাউসিয়ান কার্নেল এবং অভিন্ন ওজন সহ বিভিন্ন আকৃতির কার্নেল। নির্বিচারে সংজ্ঞায়িত ওজন এবং আকৃতি সহ কার্নেল তৈরি করতে, ee.Kernel.fixed() ব্যবহার করুন। উদাহরণস্বরূপ, এই কোডটি মাঝখানে একটি শূন্য সহ 1 এর একটি 9x9 কার্নেল তৈরি করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Create a list of weights for a 9x9 kernel.
var row = [1, 1, 1, 1, 1, 1, 1, 1, 1];
// The center of the kernel is zero.
var centerRow = [1, 1, 1, 1, 0, 1, 1, 1, 1];
// Assemble a list of lists: the 9x9 kernel weights as a 2-D matrix.
var rows = [row, row, row, row, centerRow, row, row, row, row];
// Create the kernel from the weights.
var kernel = ee.Kernel.fixed(9, 9, rows, -4, -4, false);
print(kernel);
,

ছবিতে লিনিয়ার কনভল্যুশন করতে, image.convolve() ব্যবহার করুন। কনভল করার একমাত্র যুক্তি হল একটি ee.Kernel যা একটি আকৃতি এবং কার্নেলের ওজন দ্বারা নির্দিষ্ট করা হয়। convolve() দ্বারা ইমেজ আউটপুটের প্রতিটি পিক্সেল হল কার্নেলের মান এবং কার্নেল দ্বারা আবৃত ইনপুট ইমেজ পিক্সেলের রৈখিক সমন্বয়। কার্নেলগুলি প্রতিটি ব্যান্ডে পৃথকভাবে প্রয়োগ করা হয়। উদাহরণস্বরূপ, আপনি উচ্চ-ফ্রিকোয়েন্সি তথ্য মুছে ফেলার জন্য একটি লো-পাস (মসৃণ) কার্নেল ব্যবহার করতে চাইতে পারেন। নিম্নলিখিত একটি Landsat 8 ইমেজে প্রয়োগ করা একটি 15x15 লো-পাস কার্নেলকে চিত্রিত করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Load and display an image.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318');
Map.setCenter(-121.9785, 37.8694, 11);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], max: 0.5}, 'input image');

// Define a boxcar or low-pass kernel.
var boxcar = ee.Kernel.square({
  radius: 7, units: 'pixels', normalize: true
});

// Smooth the image by convolving with the boxcar kernel.
var smooth = image.convolve(boxcar);
Map.addLayer(smooth, {bands: ['B5', 'B4', 'B3'], max: 0.5}, 'smoothed');

লো-পাস ফিল্টারের সাথে কনভোলিউশনের আউটপুট চিত্র 1 এর মতো দেখতে হবে। লক্ষ্য করুন যে কার্নেলের আর্গুমেন্টগুলি এর আকার এবং সহগ নির্ধারণ করে। বিশেষভাবে, units প্যারামিটারটি পিক্সেলে সেট করার সাথে, radius প্যারামিটার কেন্দ্র থেকে পিক্সেলের সংখ্যা নির্দিষ্ট করে যা কার্নেল কভার করবে। normalize সত্যে সেট করা থাকলে, কার্নেলের সহগ এক হবে। magnitude প্যারামিটার সেট করা থাকলে, কার্নেল সহগগুলি মাত্রা দ্বারা গুণিত হবে (যদি normalize সত্য হয়, তাহলে সহগগুলি magnitude যোগফল হবে)। যদি কার্নেল সহগগুলির কোনোটিতে একটি নেতিবাচক মান থাকে, normalize সত্যে সেট করলে সহগগুলির যোগফল শূন্য হয়ে যাবে।

boxcar_sf
চিত্র 1. ল্যান্ডস্যাট 8 চিত্র একটি মসৃণ কার্নেলের সাথে জড়িত। সান ফ্রান্সিসকো বে এলাকা, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র।

পছন্দসই চিত্র প্রক্রিয়াকরণ প্রভাব অর্জন করতে অন্যান্য কার্নেল ব্যবহার করুন। এই উদাহরণটি আইসোট্রপিক প্রান্ত সনাক্তকরণের জন্য একটি ল্যাপ্লাসিয়ান কার্নেল ব্যবহার করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Define a Laplacian, or edge-detection kernel.
var laplacian = ee.Kernel.laplacian8({ normalize: false });

// Apply the edge-detection kernel.
var edgy = image.convolve(laplacian);
Map.addLayer(edgy,
             {bands: ['B5', 'B4', 'B3'], max: 0.5, format: 'png'},
             'edges');

ভিজ্যুয়ালাইজেশন প্যারামিটারে ফর্ম্যাট স্পেসিফায়ার নোট করুন। আর্থ ইঞ্জিন দক্ষতার জন্য JPEG ফরম্যাটে কোড এডিটরের কাছে ডিসপ্লে টাইলস পাঠায়, তবে ছবির সীমানার বাইরে পিক্সেলের স্বচ্ছতা পরিচালনা করার জন্য প্রান্ত টাইলগুলি PNG ফর্ম্যাটে পাঠানো হয়। যখন একটি চাক্ষুষ বিচ্ছিন্নতা ফলাফল, PNG ফর্ম্যাট সেট একটি সামঞ্জস্যপূর্ণ প্রদর্শন ফলাফল. ল্যাপ্লাসিয়ান এজ ডিটেকশন কার্নেলের সাথে কনভলভ করার ফলাফল চিত্র 2 এর মত দেখতে হবে।

laplacian_sf
চিত্র 2. ল্যান্ডস্যাট 8 চিত্র একটি ল্যাপ্লাসিয়ান প্রান্ত সনাক্তকরণ কার্নেলের সাথে জড়িত। সান ফ্রান্সিসকো বে এলাকা, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র।

এছাড়াও অ্যানিসোট্রপিক প্রান্ত সনাক্তকরণ কার্নেল রয়েছে (যেমন সোবেল, প্রিউইট, রবার্টস), যেগুলির দিক kernel.rotate() দিয়ে পরিবর্তন করা যেতে পারে। অন্যান্য নিম্ন পাস কার্নেলের মধ্যে রয়েছে একটি গাউসিয়ান কার্নেল এবং অভিন্ন ওজন সহ বিভিন্ন আকৃতির কার্নেল। নির্বিচারে সংজ্ঞায়িত ওজন এবং আকৃতি সহ কার্নেল তৈরি করতে, ee.Kernel.fixed() ব্যবহার করুন। উদাহরণস্বরূপ, এই কোডটি মাঝখানে একটি শূন্য সহ 1 এর একটি 9x9 কার্নেল তৈরি করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Create a list of weights for a 9x9 kernel.
var row = [1, 1, 1, 1, 1, 1, 1, 1, 1];
// The center of the kernel is zero.
var centerRow = [1, 1, 1, 1, 0, 1, 1, 1, 1];
// Assemble a list of lists: the 9x9 kernel weights as a 2-D matrix.
var rows = [row, row, row, row, centerRow, row, row, row, row];
// Create the kernel from the weights.
var kernel = ee.Kernel.fixed(9, 9, rows, -4, -4, false);
print(kernel);