একটি ইনপুট চিত্রটিতে একটি গ্যাবার ফিল্টার প্রয়োগ করুন


11

আমি একটি নির্দিষ্ট স্কেল (আমার ল্যাম্বদা এবং সিগমার মান অনুসারে ) গ্যাবার ফিল্টার প্রয়োগ করার চেষ্টা করেছি, সুতরাং এটি ( 7x7 ) এবং 4 টি অভিমুখের জন্য (0, , এবং ) একটি ইনপুট ধূসর স্কেল চিত্রে।π4π23π4

আমার কোডে, তিনটি পদক্ষেপ অর্জন করা হয়েছে:

  1. একটি গ্যাবার ফিল্টার তৈরি করুন

  2. একটি আরজিবি চিত্র পড়ুন, তারপরে এটিকে ধূসর স্কেলে রূপান্তর করুন এবং ফাইনালে ডাবল করুন।

  3. ইনপুট ইমেজটিতে তৈরি গ্যাবারটি প্রয়োগ করুন ( এখানে, আমার কোডটি সত্য কিনা আমি নিশ্চিত নই, এজন্য আমার আপনার মতামত প্রয়োজন )

1) -------------- গ্যাবার ফিল্টার তৈরি করুন (আকার = 7x7 এবং 4 অভিমুখ)

%define the five parameters
theta=....; %either 0 or pi/4 or pi/2 or 3pi/4
lambda=3.5;
gamma=0.3;
sigma=2.8;
psi=0;

sigma_x = sigma;
sigma_y = sigma/gamma;

nstds = 5;
xmax = max(abs(nstds*sigma_x*cos(theta)),abs(nstds*sigma_y*sin(theta)));
xmax = ceil(max(1,xmax));
ymax = max(abs(nstds*sigma_x*sin(theta)),abs(nstds*sigma_y*cos(theta)));
ymax = ceil(max(1,ymax));
xmin = -xmax; ymin = -ymax;
[x,y] = meshgrid(xmin:xmax,ymin:ymax);

x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);

gb= exp(-.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

figure(2);
imshow(gb);
title('theta=...');
%imagesc(gb);
%colormap(gray);
%title('theta=...');

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

2) ------------ ইনপুট চিত্রটি পড়ুন

I=imread('piano.jpg');
image_resize=imresize(I, [160,160]);
image_gray=rgb2gray(image_resize);
image_double=im2double(image_gray);
figure(1);
imshow(image_double);

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

3) ----- উপরের তৈরি গাবরটিকে ইনপুট চিত্রটিতে প্রয়োগ করুন (মনে রাখবেন যে এই পদক্ষেপের কোডটি 100% সত্য কিনা তা আমি নিশ্চিত নই, এজন্য আপনার যদি সঠিক উত্তর থাকে তবে আমার আপনার মতামত এবং আপনার সহায়তা প্রয়োজন। )

figure(3);
filtered = conv2(image_double,gb);
imagesc(filtered);
colormap(gray);
title('theta=....');

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


এছাড়াও, আপনি যদি কনফ 2 ব্যবহার করছেন তবে দয়া করে এটি 'একই' বিকল্পের সাথে ব্যবহার করুন।
টোলগা বার্ডাল

ত্রুটি: ফাইল: অনুশীলন 1. মি লাইন: 3 কলাম: 7 সমান চিহ্নের বাম দিকে অভিব্যক্তি কোনও কার্যভারের জন্য বৈধ লক্ষ্য নয়। আমি এই কোডটি চালানোর সময় আমি এই ত্রুটিটি পেয়েছি
Engr রাও জাকা

এই ফিল্টারটি 7x7 নয়?
jiggunjer

উত্তর:


1

আপনার কোডটি সঠিক এবং ফলাফলগুলি সামঞ্জস্যপূর্ণ। কিছু 'লুকানো বৈশিষ্ট্য' থাকায় আপনি তাদের দ্বারা অবাক হতে পারেন।

প্রথমত, conv2ডিফল্টরূপে পুরো কনভলিউশনটি ফেরত দেয়, এর ফলে ফলাফলটি চিত্রের আকার এবং কার্নেলের অর্ধেক আকারের একটি সীমানা হয় (অর্থাৎ, মোট আকারের সাথে যদি কার্নেলের চেয়ে ছবিটির আকার হয়)। আপনি যখন নিজের ফলাফলগুলি ব্যাখ্যা করেন, তখন এটি সম্পর্কে সচেতন হন!

দ্বিতীয়ত, ফলাফলগুলি সহগগুলি উপস্থাপন করে যা আপনার কার্নেল এবং আপনার স্থানীয় চিত্র প্যাচের মধ্যে উচ্চতর পারস্পরিক সম্পর্কের জন্য শক্তিশালী: প্রত্যাশারূপে আপনিও চিত্রটির সীমানা উত্তোলন করতে পারেন। বিশেষত আপনার বামতম ফলাফল দৃ showing় উল্লম্ব লাইন দেখায় দেখুন।

সর্বশেষে, imagescডিফল্টভাবে স্কেলগুলি সর্বোচ্চ থেকে সর্বনিম্ন সহগের মধ্যে scale যে কারণে বামতম ফলাফলগুলিতে আপনি মূলত সীমান্তটি দেখেন।

conv2বর্ণিত বিভিন্ন বিকল্প রয়েছে help conv2যা এই আচরণকে নিয়ন্ত্রণ করতে দেয়।

লগ-গ্যাবার্সের মতো প্রান্ত সনাক্তকরণের জন্য কার্নেলের অনেকগুলি আলাদা সংজ্ঞা রয়েছে সে সম্পর্কেও সচেতন হন

ফিল্টার বিভিন্ন ধরণের

আপনি যদি একটি পূর্ণ বাস্তবায়নে আগ্রহী হন (পাইথনগুলিতে) আপনার এক নজরে দেখতে পারেন: https://pythonhosted.org/LogGabor/ (নির্লজ্জ স্ব-প্লাগ 😇)।


0

আপনার কোডটি সঠিক। আপনি কেবল ফিল্টার কার্নেলের সাথে 2-ডি কনভ্যুশনটি করতে হবে যা আপনি খুব ভাল করছেন।

শুভকামনা


আমি আপনাকে বুঝতে সক্ষম নই। আপনি 2-ডি কনভলিউশনটি করছেন (যেমন আপনি কনফ 2 ব্যবহার করছেন)। আর একটি উপায় হ'ল ফ্রিকোয়েন্সি ডোমেনে গুণ করা (কারণ সময় বা স্পেস-ডোমেনে কনভোলশন ফ্রিকোয়েন্সি ডোমেনে গুণনের সমতুল্য)। তবে আপনার এটি করার দরকার নেই, যেহেতু কনফাইটি মূলত একই জিনিসটি (অভ্যন্তরীণভাবে !!!) করে
উজ্জ্বল আর্য

ঠিক :), আপনি কি HMAX মডেল জানেন? (এস 1, সি 1, এস 2, সি 2 স্তর ...)। আমি এখন সি 1 লেয়ার (এস 1 ইউনিটের মধ্যে সর্বাধিক অপারেশন) গণনা করার চেষ্টা করছি, আপনি কি (ম্যাটলব কোড) সম্পর্কে কিছু ধারণা জানেন?
লিজট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.