بازدید: 2204 بازدید

آموزش روش های استخراج ویژگی در متلب

فهرست مطالب

مقدمه:

استخراج ویژگی یکی از مراحل اساسی در پردازش تصویر است که به ما امکان می‌دهد اطلاعات مهم و مفید از تصویر را استخراج کرده و برای تحلیل و شناسایی الگوها و اشیاء مختلف استفاده کنیم. این فرایند اهمیت بسیاری در حوزه های مختلفی از جمله پزشکی، تشخیص تصاویر پزشکی، تشخیص چهره، تشخیص خودروها و … دارد. در این مقاله، به آموزش روش های استخراج ویژگی در متلب و کاربردهای آنها می‌پردازیم.

اهمیت و کاربردهای استخراج ویژگی در تحلیل تصاویر:

استخراج ویژگی در تحلیل تصاویر اهمیت بسیاری دارد زیرا با استفاده از این روش می‌توانیم اطلاعات مهم و مفید را از تصویر استخراج کرده و الگوها و اشیاء مختلف را شناسایی کنیم. به عنوان مثال، در حوزه پزشکی، استخراج ویژگی از تصاویر پزشکی می‌تواند به تشخیص بیماری‌ها و اختلالات مختلف کمک کند. همچنین، در حوزه تشخیص چهره و تشخیص خودروها نیز استفاده از این روش بسیار مفید است.

مروری بر روش‌های متداول استخراج ویژگی در متلب:

در متلب، بسیاری از روش‌های متداول برای استخراج ویژگی از تصاویر وجود دارد. این روش‌ها شامل روش‌های مبتنی بر فیلترینگ، روش‌های مبتنی بر تبدیل فوریه، روش‌های مبتنی بر شبکه‌های عصبی و … می‌باشند. هر یک از این روش‌ها قابلیت‌ها و محدودیت‌های خود را دارند و بسته به نوع تصویر و مسئله مورد نظر، انتخاب مناسبی خواهند بود.

انواع روش های استخراج ویژگی در متلب:

در متلب، می‌توانید از روش‌های مختلفی برای استخراج ویژگی‌ها از داده‌ها استفاده کنید.

 برخی از روش‌های معمول برای استخراج ویژگی‌ها در متلب عبارتند از:

1. استفاده از توابع داخلی متلب برای استخراج ویژگی‌ها مانند توابع موجود در ابزارهای پردازش تصویر و پردازش سیگنال.
2. استفاده از ابزارهای پردازش تصویر مانند Image Processing Toolbox برای استخراج ویژگی‌های تصویری.
3. استفاده از روش‌های پردازش سیگنال برای استخراج ویژگی‌ها از سیگنال‌ها.
4. استفاده از الگوریتم‌های یادگیری ماشین برای خودکار انتخاب و استخراج ویژگی‌ها از داده‌ها.
5. استفاده از تکنیک‌های مهندسی ویژگی برای تبدیل ویژگی‌های اولیه به ویژگی‌های مناسب برای الگوریتم‌های یادگیری ماشین.
هر روش بسته به نوع داده و مسئله مورد بررسی ممکن است مناسب باشد. 

تولباکس های اماده روش های استخراج ویژگی در متلب:

در متلب، برای استخراج ویژگی‌ها از تصاویر یا داده‌های دیگر، می‌توان از ابزارها و توابع مختلف استفاده کرد. یکی از این ابزارها، بستهٔ پردازش تصویر MATLAB است که امکانات بسیاری برای استخراج ویژگی‌ها ارائه می‌دهد.
 
برای استفاده از این امکانات، می‌توانید از ابزارهای موجود در پنل تولباکس MATLAB استفاده کنید که به شما کمک می‌کنند تا ویژگی‌های مورد نظر خود را از داده‌ها استخراج کنید.

مثال‌هایی از ابزارها و توابعی که می‌توانید برای استخراج ویژگی‌ها استفاده کنید عبارتند از:

1. extractHOGFeatures: برای استخراج ویژگی‌های HOG (Histogram of Oriented Gradients).
2. extractLBPFeatures: برای استخراج ویژگی‌های LBP (Local Binary Patterns).
3. extractFeatures: برای استخراج ویژگی‌های سفت‌افزاری (Feature-based).
4. extractSURFFeatures: برای استخراج ویژگی‌های SURF (Speeded Up Robust Features).

کدهای اماده استخراج ویژگی در متلب:

در متلب، برای استخراج ویژگی‌های یک سیگنال یا تصویر، می‌توان از روش‌ها و توابع مختلفی استفاده کرد. اینجا چند روش معمول برای استخراج ویژگی‌ها در متلب ارائه می‌شود:

برای استخراج ویژگی‌های سیگنال:

1. استفاده از تبدیل فوریه (FFT): 

				
					% تبدیل فوریه یک سیگنال
signal = % سیگنال شما
signal_fft = fft(signal);

				
			

2. استفاده از ویژگی‌های زمانی (مانند میانگین، انحراف استاندارد و …) و یا ویژگی‌های فرکانسی که ممکن است با روش‌های مختلفی محاسبه شوند.

 برای استخراج ویژگی‌های تصویر:

1. استفاده از روش‌های پردازش تصویر:

				
					% خواندن یک تصویر
image = imread('example.jpg');
% استفاده از ویژگی‌های رنگی تصویر
mean_red = mean(mean(image(:,:,1)));
mean_green = mean(mean(image(:,:,2)));
mean_blue = mean(mean(image(:,:,3)));

				
			

2. استفاده از توابع پیش فرض یا افزونه‌های موجود در متلب برای استخراج ویژگی‌های خاص مانند هیستوگرام تصویر، تبدیل موجک و …

حال به دستورات اساسی ومهم استخراج ویژگی در متلب می پردازیم:

دستور detectBRISKFeatures:

دستور detectBRISKFeatures یکی از دستورات داخل جعبه ابزارهای Computer Vision Toolbox در نرم‌افزار MATLAB است. این دستور برای استخراج ویژگی‌های BRISK (Binary Robust Invariant Scalable Keypoints) از تصاویر استفاده می‌شود.

 ورودی‌ها:

1. **تصویر**: باید یک تصویر grayscale یا RGB به عنوان ورودی دستور قرار دهید.
2. **مقیاس‌های ویژگی**: مقدار پیش‌فرض آن 1.6 است و مقیاس‌های ویژگیهای مطابق با آن استخراج می‌شوند.
3. **مقدار Threshold**: این مقدار برای انتخاب نقاط ویژه تعیین می‌کند.

خروجی:

1. یک شیء briskPoints که ویژگیهای BRISK از تصویر استخراج شده را نگهداری می‌کند. این اطلاعات شامل موقعیت هر نقطه ویژه و مقایسهای آنها می‌باشد.

 کاربردها:

این دستور برای یافتن نقاط ویژه و استخراج ویژگی‌های تصاویر یا اشیاء در تصاویر استفاده می‌شود.

نمونه کد:

				
					% خواندن تصویر
img = imread('image.jpg');

% تبدیل تصویر به grayscale اگر لازم است
if size(img, 3) == 3
    img = rgb2gray(img);
end

% استخراج ویژگی‌های BRISK
briskPoints = detectBRISKFeatures(img);

% نمایش تصویر و نقاط ویژه بر روی آن
imshow(img);
hold on;
plot(briskPoints.selectStrongest(50)); % نمایش 50 نقطه قوی
hold off;


				
			

این کد به تصویر ورودی ویژگی‌های BRISK را اعمال کرده و نقاط ویژه را بر روی تصویر نمایش می‌دهد.

دستور detectFASTFeatures:

دستور detectFASTFeatures یکی از دستورات پرکاربرد بسته‌ی Computer Vision Toolbox در نرم‌افزار MATLAB است. این دستور برای استخراج ویژگی‌های شرح دهنده از تصاویر و استفاده از آن‌ها برای وظایف فرآیند بینایی ماشین مورد استفاده قرار می‌گیرد.

 ورودی‌های دستور detectFASTFeatures:

1. **تصویر ورودی**: یک تصویر سطح خاکستری یا تصویر رنگی که می‌خواهید از آن ویژگی‌ها استخراج شود.

2. **تنظیمات FAST Algorithm (اختیاری)**: می‌توانید تنظیمات مربوط به الگوریتم FAST را نیز به دستور دهید.

خروجی‌های دستور detectFASTFeatures:

1. **ویژگی‌ها (Features)**: موقعیت و شدت ویژگی‌های تشخیص‌یافته (اعمال FAST) روی تصویر.

2. **نقاط کلیدی (KeyPoints)**: نقاطی که به عنوان نقاط ویژه و تشخیص‌یافته در تصویر شناخته شده‌اند.

3. **مخروط‌های ویژگی (Feature Cones)**: در بعضی از حالات، این دستور همراه با مخروط‌های ویژگی که از نقاط کلیدی ایجاد شده‌اند نیز برمی‌گرداند.

 کاربردهای detectFASTFeatures:

– بینایی ماشین

– ردیابی حرکت

– سیستم های هوش مصنوعی

– تشخیص الگو

– افزایش امنیت و تشخیص چهره

 نمونه‌ی کد MATLAB برای استفاده از detectFASTFeatures:

				
					% خواندن تصویر
img = imread('example.jpg');

% تبدیل تصویر به سطح خاکستری اگر تصویر رنگی باشد
grayImg = rgb2gray(img);

% استخراج ویژگی‌ها با استفاده از detectFASTFeatures
% نقاط کلیدی و ویژگی‌ها را در متغیر keypoints ذخیره می‌کنیم
keypoints = detectFASTFeatures(grayImg);

% رسم نقاط کلیدی بر روی تصویر اولیه
imshow(img); hold on;
plot(keypoints);


				
			

این کد یک تصویر را می‌خواند، ابتدا آن را به تصویر خاکستری تبدیل می‌کند، سپس با استفاده از detectFASTFeatures نقاط کلیدی را استخراج می‌کند و در نهایت آنها را روی تصویر اصلی نشان می‌دهد.

دستور detectHarrisFeatures:

دستور detectHarrisFeatures یکی از دستورات موجود در جعبه ابزار پردازش تصویر متلب است که برای استخراج ویژگی‌های هریس (Harris corner features) از تصاویر استفاده می‌شود. این ویژگی‌ها به نقاط مهم و نقاط گوشه‌ای تصویر اشاره می‌کنند.

ورودی‌های این دستور عبارتند از:

1. تصویری که می‌خواهید ویژگی‌های هریس آن استخراج شود.

2. تنظیمات مختلف مانند مقدار Threshold برای انتخاب نقاط گوشه‌ای.

خروجی این دستور شامل یک جهش (object) است که هر نقطه گوشه‌ای یافت شده در تصویر به‌همراه مشخصه‌های آن نقطه از جمله موقعیت در تصویر، معیار قوت ویژگی (strength) و جهت یا زاویه آن است.

این دستور بیشتر برای تصاویر دو بعدی و کاربردهای پردازش تصویر مورد استفاده قرار می‌گیرد، به ویژه در زمینه بینایی ماشین، تشخیص الگو و ردیابی اشیاء.

نمونه کد استفاده از این دستور در MATLAB:

				
					% خواندن تصویر
image = imread('example.jpg');

% تبدیل تصویر به تصویر خاکستری اگر لازم باشد
grayImage = rgb2gray(image);

% استخراج ویژگی‌های هریس از تصویر
points = detectHarrisFeatures(grayImage);

% نمایش تصویر اصلی و نقاط یافت شده
imshow(image);
hold on;
plot(points);


				
			

این کد نمونه یک تصویر رنگی را می‌خواند، آن را به تصویر خاکستری تبدیل کرده، و ویژگی‌های هریس آن را استخراج کرده و در نهایت تصویر اصلی را نمایش می‌دهد و نقاط گوشه‌ای را روی آن نشان می‌دهد.

دستور detectMinEigenFeatures:

دستور detectMinEigenFeatures در محیط MATLAB برای تشخیص ویژگی‌های مینیمم ایگن ویژور‌ها در تصاویر به کار می‌رود. این دستور برای استخراج نقاط ویژه تصویر کاربرد دارد. ویژگی‌های مینیمم ایگن ویژورها نقاطی هستند که در آن‌ها کمینه مقدار ایگن‌ویژور داخل یک محدوده دست‌نخورده و نظیر تغییرات شدید در تصویر هستند.

برای استفاده از این دستور، می‌توانید تصویر ورودی خود را به عنوان ورودی دستور بدهید. این دستور نقاط ویژه تشخیص داده شده را به عنوان خروجی باز می‌گرداند.

این دستور به طور عمده برای پردازش تصویر و استخراج ویژگی‌های تصویر استفاده می‌شود. 

در زیر یک مثال از استفاده از این دستور در MATLAB آورده شده است:

				
					% خواندن تصویر
I = imread('cameraman.tif');

% تشخیص نقاط ویژه با استفاده از مینیمم ایگن ویژورها
points = detectMinEigenFeatures(I);

% نمایش تصویر و نقاط ویژه روی آن
imshow(I); hold on;
plot(points);


				
			

این مثال تصویر را از فایل موجود در MATLAB به نام “cameraman.tif” بارگذاری می‌کند، سپس نقاط ویژه با استفاده از دستور detectMinEigenFeatures تشخیص داده و برروی تصویر نمایش داده می‌شود.

دستور detectMSERFeatures:

دستور detectMSERFeatures در محیط نرم‌افزار MATLAB برای تشخیص و استخراج ویژگی‌های منظقه‌ای از تصاویر استفاده می‌شود. معمولاً از این دستور برای تشخیص مناطقی از تصویر که در متن‌های واضح یا محیط‌های با فرکانس بالا قرار دارند، استفاده می‌شود.

ورودی‌های این تابع عبارتند از:

1.I: تصویر ورودی که از آن قصد دارید ویژگی‌های MSER را استخراج کنید.

و خروجی این تابع شامل:

1. features: ویژگی‌های MSER که از تصویر ورودی استخراج شده‌اند.

این دستور بیشتر برای پردازش تصاویر کاربرد دارد و می‌تواند در بخش‌های مختلفی از پردازش تصویر مانند تشخیص الگو، تشخیص شیء و غیره مورد استفاده قرار گیرد.

نمونه‌ای از استفاده این دستور در MATLAB:

				
					% خواندن تصویر ورودی
I = imread('cameraman.tif');

% استخراج ویژگی‌های MSER از تصویر
features = detectMSERFeatures(I);

% نمایش تصویر و ویژگی‌های استخراج شده
imshow(I); hold on;
plot(features);


				
			

این کد یک تصویر ورودی به نام cameraman.tif را می‌خواند، سپس ویژگی‌های MSER از آن تصویر استخراج کرده و در نهایت تصویر اصلی را نمایش می‌دهد و ویژگی‌های استخراج شده را روی آن نشان می‌دهد.

دستور detectORBFeatures:

دستور detectORBFeatures یکی از دستورات قابل استفاده در جعبه ابزار پردازش تصویر و بینایی ماشین در نرم‌افزار MATLAB است که برای استخراج ویژگی‌های با الگوریتم ORB (Oriented FAST and Rotated BRIEF) استفاده می‌شود. این الگوریتم معمولاً برای تشخیص و تطبیق ویژگی‌ها در تصاویر استفاده می‌شود.

 ورودی‌ها:

1. **تصویر ورودی (I)**: تصویری که می‌خواهید ویژگی‌های آن با الگوریتم ORB استخراج شود.

خروجی‌ها:

1. **موقعیت‌ها (features) و توصیف‌های (validPoints)**: این دستور دو ماتریس با خصوصیات ویژگی‌های تشخیص داده شده برمی‌گرداند. اطلاعات دقیق‌تری مانند موقعیت و شیفت تشخیصی این ویژگی‌ها نیز در این خروجی‌ها قابل دسترسی است.

 محدوده استفاده:

دستور detectORBFeatures عمدتا برای تصاویر و تصاویری با مناظر و ویژگی‌های برجسته کاربرد دارد به منظور تشخیص و تطبیق ویژگی‌ها بین تصاویر.

 نمونه کد:

				
					% خواندن تصویر
I = imread('cameraman.tif');

% استخراج ویژگی‌های ORB
features = detectORBFeatures(I);

% نشان دادن تصویر ویژگی‌ها با یک علامت
imshow(I); hold on;
plot(features.Location(:,1), features.Location(:,2), 'g*');


				
			

این کد، یک تصویر معمولی را می‌خواند، ویژگی‌های آن را با الگوریتم ORB استخراج می‌کند و سپس موقعیت‌های ویژگی‌ها را بر روی تصویر اصلی نشان می‌دهد.

⚠️ دقت کنید که برای کار با این دستور، باید دستور vision از پکیج Image Processing Toolbox را نصب کرده باشید.

دستور detectSURFFeatures:

دستور detectSURFFeatures یکی از دستورات مهم در پردازش تصویر و بینایی کامپیوتر در محیط متلب است که برای استخراج ویژگی‌های تصویر از طریق از الگوریتم معروف SURF (Speeded-Up Robust Features) استفاده می‌شود.

 

 ورودی‌ها:

– **تصویر ورودی:** تصویری که می‌خواهید از آن ویژگی‌ها استخراج شود.

– **پارامترهای موردنیاز:** این دستور شامل پارامترهای مهمی برای تنظیم فرایند استخراج ویژگی‌ها می‌شود که بسته به نیاز می‌تواند تنظیم شوند.

خروجی:

– **ویژگی‌های تشخیص داده شده:** این دستور ویژگی‌های مهم در تصویر را باز می‌گرداند که با استفاده از آنها می‌توانید الگوها یا نقاط کلیدی در تصویر را شناسایی کنید.

 کاربردها:

– detectSURFFeatures بیشتر برای پردازش تصاویر استفاده می‌شود، مخصوصاً در بینایی کامپیوتر، تشخیص الگو، پیگیری حرکت، بازسازی سه‌بعدی، تطبیق الگو و غیره.

نمونه کد:

				
					% خواندن تصویر ورودی
img = imread('image.jpg');

% استخراج ویژگی‌های SURF از تصویر
features = detectSURFFeatures(rgb2gray(img));

% نمایش تصویر ویژگی‌ها
imshow(img); hold on;
plot(features.selectStrongest(50));

				
			

در این مثال، ابتدا تصویر ورودی خوانده شده و سپس ویژگی‌های SURF با استفاده از detectSURFFeatures از تصویر استخراج می‌شود. در نهایت، 50 ویژگی قویتر بر روی تصویر نمایش داده می‌شود.

دستور detectKAZEFeatures:

دستور detectKAZEFeatures یکی از دستورات جعبه ابزارهای Computer Vision در MATLAB است که بخشی از پردازش تصاویر است. این دستور برای استخراج ویژگی‌های تصاویر با استفاده از الگوریتم KAZE (K-Adaptive Zero-crossing Extension) مورد استفاده قرار می‌گیرد.

ورودی‌های مورد نیاز:

1. تصویری که می‌خواهید ویژگی‌های آن استخراج شود.

خروجی‌های تولید شده:

1. یک شیء features, که شامل اطلاعات ویژگی‌های تشخیص‌یافته است.

2. شیء validPoints, که شامل نقاط معتبری در تصویر بر اساس ویژگی‌های استخراج‌شده است.

این دستور برای استخراج ویژگی‌ها از تصاویر استفاده می‌شود تا بتواند عناصر گوناگون تصویر را تجزیه و تحلیل کند، مانند تشخیص شیء یا الگوهای مختلف در یک تصویر.

نمونه کد MATLAB برای استفاده از این دستور به شکل زیر است:

				
					% خواندن تصویر ورودی
img = imread('example_image.jpg');

% اعمال detectKAZEFeatures بر روی تصویر
points = detectKAZEFeatures(img);

% نمایش نقاط معتبر استخراج شده
imshow(img);
hold on;
plot(points);


				
			

این کد یک تصویر را بارگیری می‌کند، ویژگی‌های آن را به کمک detectKAZEFeatures استخراج می‌کند، و نقاط معتبر مورد استخراج را روی تصویر نمایش می‌دهد.

برای استفاده از این دستور، مطمئن شوید که جعبه ابزار Computer Vision Toolbox در MATLAB فعال باشد.

دستور extractFeatures:

دستور extractFeatures در نرم‌افزار متلب مربوط به جعبه‌ابزارهای بینایی ماشین است و برای استخراج ویژگی‌ها از داده‌های تصویری یا سیگنال‌هایی کاربرد دارد. این دستور بهترین ویژگی‌ها یا اطلاعات مهم از داده‌ها را استخراج می‌کند که می‌تواند برای مسائل یادگیری ماشین و تشخیص الگوها بسیار مفید باشد.

برای استفاده از دستور extractFeatures، باید به عنوان ورودی یک تصویر یا سیگنال را به آن داده و این دستور تعدادی ویژگی مهم (مانند ویژگی‌های هندسی، آماری و غیره) را از داده‌ها استخراج می‌کند.

این دستور به طور کلی برای پردازش تصاویر و سیگنال‌ها و استفاده در بخش‌هایی مانند پردازش تصویر، تشخیص الگو، تشخیص شی، کلاس‌بندی و مسائل یادگیری ماشین مورد استفاده قرار می‌گیرد.

مثال کدی برای استفاده از دستور extractFeatures در متلب می‌تواند به صورت زیر باشد:

				
					% خواندن تصویر
img = imread('example.jpg');

% استخراج ویژگی‌ها
features = extractFeatures(img);

% نمایش ویژگی‌های استخراج شده
disp(features);


				
			

این مثال، تصویری به نام example.jpg را خوانده و سپس ویژگی‌های آن تصویر را با استفاده از extractFeatures استخراج می‌کند و آن را نمایش می‌دهد. حال شما می‌توانید این مثال را در محیط متلب خود اجرا کنید تا نتایج را مشاهده کنید.

دستور extractLBPFeatures:

دستور extractLBPFeatures در محیط نرم‌افزار MATLAB برای استخراج ویژگی‌های Local Binary Patterns (LBP) از تصاویر استفاده می‌شود. ویژگی‌های LBP از مهمترین ویژگی‌های مبتنی بر تصاویر برای تشخیص الگوها و شیوه‌ها به شمار می‌روند.

 ورودی‌ها:

1. **تصویر ورودی (image)**: تصویری که می‌خواهید از آن ویژگی‌های LBP را استخراج کنید.

2. **نقطه‌های دور آنکه ویژگی‌های LBP محاسبه می‌شود (NumPoints)**: تعداد نقاط یا پیکسل‌های مورد استفاده برای محاسبه ویژگی‌های LBP.

3. **رادیوس (Radius)**: شعاع محاسبه LBP.

 خروجی:

به عنوان خروجی، این دستور یک بردار از ویژگی‌های LBP که از تصویر ورودی استخراج شده است را تولید می‌کند.

 کاربرد:

استفاده اصلی این دستور برای تصاویر است تا ویژگی‌های سطح محلی تصاویر را برای الگوها در تصاویر یا تصاویر مختلف تشخیص دهند.

 نمونه کد:

				
					% خواندن تصویر
image = imread('example.jpg');

% محاسبه ویژگی‌های LBP
NumPoints = 8;
Radius = 1;
features = extractLBPFeatures(image, 'NumPoints', NumPoints, 'Radius', Radius);

% نمایش ویژگی‌های محاسبه شده
disp(features);


				
			

این کد یک تصویر را خوانده و ویژگی‌های LBP آن را محاسبه کرده و مقادیر ویژگی‌ها را نمایش می‌دهد. مناسب است که تصویر ورودی یا سیگنالی با ویژگی‌های منحصر به فرد برای استخراج الگوها و شیوه‌ها را انتخاب کنید.

دستور extractHOGFeatures:

دستور extractHOGFeatures در محیط برنامه‌نویسی MATLAB برای استخراج ویژگی‌های HOG (Histogram of Oriented Gradients) استفاده می‌شود که برای تشخیص الگوهای موجود در تصاویر به کار می‌رود.

 ورودی‌ها:

1. I: تصویر ورودی که بر روی آن می‌خواهید ویژگی HOG را استخراج کنید.

2. CellSize: اندازه سلول‌های گرادیان برای محاسبه HOG.

3. BlockSize: اندازه بلوک‌ها برای نرمالیزه‌سازی HOG.

4. NumBins: تعداد بازه‌های زاویه برای محاسبه گرادیان.

 خروجی:

1. features: ویژگی‌های HOG که از تصویر ورودی استخراج شده‌اند.

کاربرد:

– دستور extractHOGFeatures بیشتر بخشی از پردازش تصویر و تشخیص الگوها می‌باشد.

– این ویژگی‌ها برای تشخیص الگوها، تفکیک اشیاء یا تشخیص شیء در تصویر استفاده می‌شوند.

نمونه کد:

				
					% خواندن تصویر
img = imread('image.jpg');

% استخراج ویژگی HOG
hogFeatures = extractHOGFeatures(img, 'CellSize', [8 8], 'BlockSize', [2 2], 'NumBins', 9);

% نمایش ویژگی‌های HOG
disp(hogFeatures);


				
			

این کد یک تصویر را بارگذاری می‌کند و ویژگی‌های HOG آن را با استفاده از دستور extractHOGFeatures استخراج می‌کند و در نهایت ویژگی‌های HOG را نمایش می‌دهد.

دستور matchFeatures:

دستور matchFeatures در برنامه‌نویسی MATLAB برای استخراج و مقایسه ویژگی‌های تصاویر استفاده می‌شود، به طور خاص برای مسائل مربوط به پردازش تصویر و بینایی ماشین مناسب است. این دستور ابتدا ویژگی‌های کلیدی از تصویرهای ورودی را استخراج می‌کند و سپس ویژگی‌های متناظر بین دو تصویر یا چند تصویر را مقایسه و ارزیابی می‌کند.

ورودی‌های matchFeatures:

– ویژگی‌های تصویر اول

– ویژگی‌های تصویر دوم

خروجی‌های matchFeatures:

– نقاط متناظر بین دو تصویر

– امتیازهای متناظر به عنوان انطباق و مطابقت ویژگی‌ها

این دستور بیشتر برای تصاویر کاربرد دارد و معمولا برای ماموریت‌هایی مانند مطابقت تصاویر، تشخیص الگو، تعیین موقعیت وضعیت و یا پیگیری اشیاء در تصاویر استفاده می‌شود.

نمونه کد MATLAB برای استفاده از matchFeatures:

				
					% خواندن دو تصویر
image1 = imread('image1.jpg');
image2 = imread('image2.jpg');

% استخراج ویژگی‌های کلیدی از هر دو تصویر
keypoints1 = detectSURFFeatures(image1);
keypoints2 = detectSURFFeatures(image2);

% استخراج توصیف‌کننده ویژگی‌ها
features1 = extractFeatures(image1, keypoints1);
features2 = extractFeatures(image2, keypoints2);

% مقایسه و مطابقت ویژگی‌ها
indexPairs = matchFeatures(features1, features2);

% نمایش نقاط متناظر بین دو تصویر
matchedPoints1 = keypoints1(indexPairs(:, 1));
matchedPoints2 = keypoints2(indexPairs(:, 2));

figure;
showMatchedFeatures(image1, image2, matchedPoints1, matchedPoints2);
title('نقاط متناظر بین دو تصویر');


				
			

این کد نشان می‌دهد چگونه از matchFeatures برای استخراج و مقایسه ویژگی‌های دو تصویر استفاده شود. در نهایت، نقاط متناظر بین دو تصویر با ارتباط خطی بر روی تصاویر نمایش داده می‌شود. امیدوارم که اطلاعات ارائه شده مفید باشد!

دستور matchFeaturesInRadius:

دستور matchFeaturesInRadius در بسته‌ی Computer Vision System Toolbox MATLAB وجود دارد و برای مقایسه و استخراج ویژگی‌های مشابه در تصاویر یا سیگنال‌ها به کار می‌رود. این دستور برای یافتن ویژگی‌هایی استفاده می‌شود که در شعاع مشخصی از هم قرار دارند.

ورودی‌ها:

1. features1: ویژگی‌های تصویر یا سیگنال اول

2. features2: ویژگی‌های تصویر یا سیگنال دوم

3. radius: شعاع مورد نظر برای جستجوی ویژگی‌ها

 خروجی:

1. indexPairs: ایندکس‌های ویژگی‌های اول و دوم که در شعاع مورد نظر با هم متناظر قرار دارند

2. metricValues: مقدار معیار برای متناظر بودن ویژگی‌ها

 کاربرد:

این دستور بیشتر برای پردازش تصاویر و سیگنال‌ها، به خصوص در حوزه‌هایی مانند تشخیص الگو، ردیابی شیء و مسائل مربوط به پردازش تصویر با سیگنال‌ها مورد استفاده قرار می‌گیرد.

نمونه کد:

				
					% تولید ویژگی‌های تصویر یا سیگنال اول و دوم
features1 = detectSURFFeatures(img1);
features2 = detectSURFFeatures(img2);

% استخراج نقاط متناظر در دو تصویر داده شده با شعاع 20
[indexPairs, metricValues] = matchFeaturesInRadius(features1, features2, 20);

% نمایش نقاط متناظر
matchedPoints1 = features1(indexPairs(:, 1), :);
matchedPoints2 = features2(indexPairs(:, 2), :);

% نمایش نقاط متناظر بر روی تصاویر
imshowpair(img1, img2, 'montage');
hold on;
plot(matchedPoints1.Location(:,1), matchedPoints1.Location(:,2), 'g*');
plot(matchedPoints2.Location(:,1) + size(img1, 2), matchedPoints2.Location(:,2), 'g*');
hold off;


				
			

این دستور کمک می‌کند تا ویژگی‌های مشابه در دو تصویر یا سیگنال را به هم متناظر کنید و از آنها برای پردازش‌های بعدی مانند تشخیص یا ردیابی استفاده کنید.

دستور imwarp:

دستور imwarp در محیط MATLAB به منظور اعمال تبدیل‌های هندسی مختلف بر روی تصاویر استفاده می‌شود. این دستور به کاربر این امکان را می‌دهد که یک تبدیل هندسی مشخص را بر روی یک تصویر اعمال کند. به عبارت دیگر، این دستور از تصویر اولیه و یک تبدیل هندسی (مانند تبدیل همراه با ماتریس تبدیل) به عنوان ورودی‌ها دریافت می‌کند و تصویر تغییر یافته را به عنوان خروجی ارائه می‌دهد.

ورودی‌های دستور imwarp عبارتند از:

1. تصویر اصلی که می‌خواهید بر روی آن تبدیل انجام شود.

2. تبدیل هندسی (همراه با ماتریس تبدیل) که انجام شود.

خروجی این دستور یک تصویر متناظر با تصویر اولیه، که تحت تبدیل هندسی مورد نظر قرار گرفته است، خواهد بود.

imwarp بیشتر برای کار با تصاویر مورد استفاده قرار می‌گیرد و برای اعمال تبدیل‌های هندسی مانند تغییر اندازه، چرخش و شیفت بر روی تصاویر مفید است.

نمونه کد استفاده از imwarp در MATLAB:

				
					% خواندن تصویر اصلی
originalImage = imread('peppers.png');

% تعریف ماتریس تبدیل هندسی (مثال: یک چرخش 45 درجه)
theta = 45;
tform = affine2d([cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1]);

% اعمال تبدیل بر روی تصویر اصلی
warpedImage = imwarp(originalImage, tform);

% نمایش تصویر اصلی و تصویر تغییر یافته
subplot(1, 2, 1);
imshow(originalImage);
title('تصویر اصلی');
subplot(1, 2, 2);
imshow(warpedImage);
title('تصویر تبدیل شده');


				
			

در این مثال، ابتدا تصویر اصلی peppers.png خوانده شده است و سپس یک ماتریس تبدیل هندسی (چرخش 45 درجه) تعریف می‌شود. سپس تبدیل بر روی تصویر اعمال شده و تصاویر اصلی و تغییر یافته نمایش داده می‌شود.

دستور estimateGeometricTransform2D:

دستور estimateGeometricTransform2D یکی از دستورات مفید ابزارهای پردازش تصویر در MATLAB است که برای تخمین تبدیل هندسی دوبعدی بین دو تصویر یا داده ورودی استفاده می‌شود. این دستور برای تشخیص انتقال، مقیاس، چرخش، و تغییر شکل بین دو تصویر یا داده مورد استفاده قرار می‌گیرد.

ورودی‌ها:

1. movingPoints: ماتریس نقاط در تصویر متحرک که می‌خواهید به تصویر ثابت تبدیل شود.
2. fixedPoints: ماتریس نقاط متناظر در تصویر ثابت.

 خروجی:

Tform: یک ساختار تبدیل هندسی که حاوی جزئیات تبدیل است.

 کاربرد:

این دستور بیشتر برای تصاویر دیجیتال (مانند عکس‌ها) استفاده می‌شود، برای تشخیص و اصلاح هرگونه تبدیل هندسی بین دو تصویر.

 نمونه کد:

				
					% تعریف نقاط متحرک و متناظر
movingPoints = [10, 10; 20, 30; 40, 60];
fixedPoints = [15, 15; 25, 35; 45, 65];

% تخمین تبدیل هندسی
tform = estimateGeometricTransform2D(movingPoints, fixedPoints, 'similarity');

% اعمال تبدیل بر روی تصویر
outputImage = imwarp(inputImage, tform);

% نمایش تصویر خروجی
imshow(outputImage);


				
			

در این مثال، ابتدا نقاط متحرک و متناظر را تعریف کرده، سپس با استفاده از estimateGeometricTransform2D تبدیل هندسی بین دو تصویر را تخمین میزنیم و در نهایت با استفاده از تبدیل بدست آمده، تصویر ورودی را تبدیل و نمایش می‌دهیم. 

دستور estimateGeometricTransform3D:

دستور estimateGeometricTransform3D یکی از دستورات جعبه ابزارهای پردازش تصویر متلب است که برای تخمین تبدیل هندسی سه‌بعدی بین دو تصویر سه‌بعدی مورد استفاده قرار می‌گیرد. این دستور می‌تواند برای ردیابی ویژگی‌ها، تشخیص الگو و سایر کاربردهای پردازش تصویر سه‌بعدی استفاده شود.

 ورودی‌های دستور estimateGeometricTransform3D:

1. movingPoints: نقاط مربوط به تصویر حرکتی (تصویری که نیاز داریم تبدیل هندسی آن را تخمین بزنیم).

2. fixedPoints: نقاط مربوط به تصویر ثابت (تصویر مرجع).

3. transformType: نوع تبدیل هندسی برای استفاده (مانند تبدیل انتقال، چرخش، مقیاس و …).

خروجی دستور estimateGeometricTransform3D:

یک شی Transformation3D که حاوی اطلاعات دقیق تبدیل هندسی بین دو تصویر است.

 کاربرد:

این دستور بیشتر برای پردازش تصاویر سه‌بعدی مورد استفاده قرار می‌گیرد که در آن نیاز به تخمین یا پیدا کردن تبدیل هندسی بین دو تصویر سه‌بعدی وجود دارد.

نمونه کد:

				
					% تعریف نقاط مربوط به تصویر حرکتی و تصویر ثابت
movingPoints = [0, 0, 0; 1, 1, 1; 2, 2, 2];
fixedPoints = [0, 0, 0; 2, 2, 2; 4, 4, 4];

% تخمین تبدیل هندسی سه‌بعدی
tform = estimateGeometricTransform3D(movingPoints, fixedPoints, 'affine');

% اعمال تبدیل بر روی نقاط تصویر حرکتی
transMovingPoints = transformPointsForward(tform, movingPoints);


				
			

در این مثال، ابتدا دو تصویر سه‌بعدی با نقاط مربوطه تعریف شده و سپس تبدیل هندسی بین این دو تصویر با استفاده از estimateGeometricTransform3D تخمین زده می‌شود. در نهایت، تبدیل اعمال شده بر روی نقاط تصویر حرکتی و نتایج آن در transMovingPoints ذخیره می‌شود.

دستور vision.AlphaBlender:

دستور vision.AlphaBlender یکی از دستورات پردازش تصویر در جعبه ابزارهای پردازش تصویر MATLAB است. این دستور برای ادغام دو تصویر با استفاده از یک ضریب آلفا (alpha blending) استفاده می‌شود. این روش یک روش پرکاربرد در گرافیک کامپیوتری است که اجازه می‌دهد دو تصویر را با هم ترکیب کرده و وزنده‌ی آن‌ها را توسط مقدار آلفا کنترل کنیم.

ورودی‌های این دستور شامل تصویر اصلی (foreground image)، تصویر پس‌زمینه (background image) و یک ماتریس ضریب آلفا است. خروجی این دستور یک تصویر جدید می‌باشد که حاصل از ادغام دو تصویر است.

این دستور بیشتر برای کار با تصاویر مورد استفاده قرار می‌گیرد تا به محدودیت سیگنال‌ها متمایل نباشد، اما نیز می‌تواند برای پردازش سیگنال‌ها نیز مورد استفاده قرار گیرد.

نمونه کد زیر نحوه استفاده از دستور vision.AlphaBlender را نشان می‌دهد:

				
					% خواندن تصاویر
foreground = imread('foreground.jpg');
background = imread('background.jpg');

% ساخت ماتریس ضریب آلفا
alpha = 0.7 * ones(size(foreground, 1), size(foreground, 2));

% ادغام تصاویر
blendedImage = vision.AlphaBlender('Opacity', alpha)(foreground, background);

% نمایش تصویر حاصل
imshow(blendedImage);

				
			

در این مثال، تصویر foreground.jpg به عنوان تصویر اصلی و background.jpg به عنوان تصویر پس‌زمینه خوانده شده و سپس با استفاده از یک ماتریس ضریب آلفا مقدار 0.7، دو تصویر با یکدیگر ادغام شده و تصویر حاصل نمایش داده شده است.

دستور vision.BlockMatcher:

در محیط نرم‌افزار MATLAB، دستور vision.BlockMatcher جزو جعبه‌ابزارهای پردازش تصویر قرار دارد و برای استخراج ویژگی‌های تصویر و پردازش تصاویر استفاده می‌شود. این دستور برای انجام مطابقت بلوکی (block matching) بین دو تصویر با هدف پیدا کردن تغییرات و اختلافات بین آن‌ها استفاده می‌شود.

ورودی‌های دستور vision.BlockMatcher:

1. RefImage: تصویر مرجع که تصویر پایه برای مقایسه با تصویر مقصد است.

2. SubImage: تصویر مقصد برای مقایسه با تصویر مرجع.

3. ReferenceROI: ناحیه از تصویر مرجع برای انجام مطابقت بلوکی روی آن.

4. SearchMethod: متد جستجو برای مطابقت بلوکی مانند Exhaustive یا Three-Step Search.

 خروجی‌های دستور vision.BlockMatcher:

1. VectorFields: فیلدهای برداری که حاوی اطلاعات مکانی و تغییرات میان تصویر مرجع و تصویر مقصد هستند.

 کاربرد اصلی:

دستور vision.BlockMatcher بیشتر بورای پردازش تصویر و داده‌های تصویری مانند ویدیوها مورد استفاده قرار می‌گیرد. این دستور برای ردیابی حرکت، تطبیق تصاویر و بسیاری از کاربردهای پیشرفته پردازش تصویر مورد استفاده قرار می‌گیرد.

 نمونه کد MATLAB:

اینجا یک نمونه ساده از استفاده از vision.BlockMatcher در MATLAB به صورت کد زیر آمده است:

				
					refImage = imread('reference_image.jpg');
subImage = imread('subject_image.jpg');

blkSize = [16 16];
searchMethod = 'Exhaustive';
blockMatcher = vision.BlockMatcher('ReferenceImage', refImage, 'SearchMethod', searchMethod, 'BlockSize', blkSize);

vectorFields = blockMatcher(subImage);

				
			

این کد نمونه از چگونگی استفاده از vision.BlockMatcher را نشان می‌دهد برای پیدا کردن فیلدهای برداری بین تصویر مرجع و تصویر مقصد. لطفا توجه داشته باشید که برای اجرای این کد باید تصاویر مرجع و مقصد را در MATLAB بارگذاری کنید.

دستور vision.TemplateMatcher:

دستور vision.TemplateMatcher یکی از دستورات مهم جعبه ابزار پردازش تصویر و دسته‌بندی تصاویر در MATLAB است. این دستور برای استخراج ویژگی‌ها از تصاویر و پیدا کردن الگوهای مشخص در تصاویر استفاده می‌شود.

ورودی‌های مورد نیاز:

1. **تصویر ورودی (I)**: تصویری که می‌خواهید الگوها را در آن پیدا کنید.

2. **الگو (template)**: تصویری که به عنوان الگو برای مقایسه با تصویر ورودی استفاده می‌شود.

خروجی‌های این دستور:

1. **نتایج هم‌خطی نقاط (Match metric values)**: این اطلاعات می‌تواند شامل معیارهای متفاوتی مثل نوع معیار همسانی بین تصویر و الگو، موقعیت‌هایی که الگو در تصویر یافت شده و اندازه الگو در تصویر باشد.

 کاربرد:

این دستور برای مقایسه تصویر و الگو، تشخیص الگوها یا اشیاء در تصاویر و حل مسائل تطبیق الگویی در پردازش تصاویر استفاده می‌شود.

نمونه کد:

اینجا یک نمونه کد ساده از استفاده از vision.TemplateMatcher در MATLAB آورده شده است:

				
					% تعریف تصویر ورودی و الگو
I = imread('input_image.jpg');
template = imread('template_image.jpg');

% ایجاد یک آبجکت TemplateMatcher
tm = vision.TemplateMatcher;

% پیدا کردن الگو در تصویر ورودی
loc = step(tm, I, template);

% نمایش نتایج
disp(loc);


				
			

این کد ساده یک تصویر ورودی و یک الگو مشخص را بارگیری کرده، سپس با استفاده از TemplateMatcher الگو را در تصویر پیدا کرده و موقعیت‌های مختلف آن را نشان می‌دهد.

دستور insertMarker:

در محیط نرم‌افزار MATLAB، دستور insertMarker برای نمایش یک نشانگر (مارکر) در تصویر استفاده می‌شود. این دستور معمولا برای نشان دادن یا مشخص کردن مکان یا نقطه خاصی در تصویر به کار می‌رود.

 ورودی‌ها (Input):

– **تصویر ورودی**: تصویری که می‌خواهید بروی آن نشانگر قرار دهید.

– **موقعیت مارکر (marker location)**: مختصات (سطر، ستون) نقطه‌ای که می‌خواهید مارکر را در آنجا قرار دهید.

– **نوع مارکر (marker type)**: نوع مارکری که می‌خواهید استفاده کنید، مانند ‘plus’, ‘star’, ‘circle’, و غیره.

خروجی (Output):

– **تصویر با مارکر**: تصویر اصلی که مارکر متناظر با موقعیت مورد نظر در آن قرار گرفته است.

کاربرد:

این دستور بیشتر برای تصاویر به‌کار می‌رود تا موقعیت یا نقطه‌های خاص را روی تصویر مشخص کند.

 نمونه کد:

				
					% خواندن تصویر
img = imread('lena.png');

% موقعیت مورد نظر برای مارکر
row = 100;
col = 150;

% نشانگر مورد استفاده (برای مثال یک دایره)
markerType = 'circle';

% استفاده از دستور insertMarker
img_with_marker = insertMarker(img, [col, row], 'o', 'color', 'red', 'size', 10);

% نشان دادن تصویر اصلی و تصویر با مارکر
figure;
subplot(1,2,1);
imshow(img);
title('تصویر اصلی');

subplot(1,2,2);
imshow(img_with_marker);
title('تصویر با مارکر');


				
			

در این مثال، تصویر لنا می‌خواند شده و در موقعیت (100، 150) یک مارکر به شکل دایره با رنگ قرمز و اندازه 10 قرار داده می‌شود.

دستور insertShape:

دستور insertShape یکی از دستورات جعبه ابزارهای متلب است که برای اضافه کردن یک شکل هندسی به یک شکل دیگر یا تصویر استفاده می‌شود. این دستور توضیحات کاملی در مستندات رسمی متلب دارد و من به شما جزئیات کامل آن را بیان خواهم کرد.

 ورودی‌های insertShape:

1. **شکل‌های اولیه (I)**: شکلی که می‌خواهید شکل جدید را به آن اضافه کنید.

2. **شکل جدید (J)**: شکل جدیدی که می‌خواهید به شکل اولیه اضافه کنید.

3. **موقعیت (position)**: موقعیت جایگذاری شکل جدید در شکل اولیه.

خروجی insertShape:

1. **Output (O)**: شکل حاصل از ادغام شکل جدید با شکل اولیه.

این دستور عمدتا برای کار با تصاویر استفاده می‌شود و برای ایجاد اشکال هندسی یا نشانه‌گذاری بخصوص در پردازش تصویر و تشخیص الگوها کاربرد دارد.

 نمونه کد:

در زیر یک نمونه کد ساده برای استفاده از دستور insertShape در متلب آمده است:

				
					% ایجاد یک ماتریس تصویر سیاه و سفید
image = zeros(100, 100);
image(25:75, 25:75) = 1;

% ایحاد یک مربع در موقعیت (10,10) به ابعد 20x20
square = ones(20, 20);

% ادغام مربع با تصویر
result = insertShape(image, 'FilledRectangle', [10, 10, 20, 20], 'Color', 'red');

% نمایش تصویر حاصل
imshow(result);


				
			

در این مثال، یک تصویر 100×100 به عنوان image ایجاد شده و یک مربع با ابعاد 20×20 به square اختصاص داده شده است. سپس از insertShape برای اضافه کردن مربع به تصویر استفاده شده و تصویر حاصل با استفاده از imshow نمایش داده شده است.

 دستور showMatchedFeatures:

در محیط متلب، دستور showMatchedFeatures یکی از دستورات مربوط به پردازش تصویر و دید کامپیوتری است که بیشتر برای تطبیق و نمایش ویژگی‌های مشابه بین تصاویر استفاده می‌شود.

ورودی‌ها:

1. **تصاویر ویژگی (Features) اولیه**: معمولاً تصاویری که از ویژگی‌های مخصوص تصاویر (مانند نقاط کلیدی یا corner points) استخراج شده‌اند.

2. **تصاویر اصلی**: تصویر یا تصاویری که می‌خواهید ویژگی‌های مشابه آنها را نشان دهید.

 خروجی:

نتیجه اجرای این دستور عبارت است از تصویری که ویژگی‌های مشابه بین دو تصویر را نمایش می‌دهد. این ویژگی‌ها ممکن است نقاطی باشند که الگوریتم تطابق داده شده از هر دو تصویر یافته است.

کاربردها:

– تطبیق و نمایش ویژگی‌های مشابه بین دو تصویر.

– استفاده در برنامه‌های کاوش تصویر و بازنگری دیداری.

– پردازش تصاویر مرتبط با ردیابی و تطابق.

نمونه کد:

				
					I1 = imread('image1.jpg'); % خواندن تصویر اول
I2 = imread('image2.jpg'); % خواندن تصویر دوم

% استخراج ویژگی‌ها از تصویر اول
points1 = detectSURFFeatures(rgb2gray(I1));
[features1, validPoints1] = extractFeatures(rgb2gray(I1), points1);

% استخراج ویژگی‌ها از تصویر دوم
points2 = detectSURFFeatures(rgb2gray(I2));
[features2, validPoints2] = extractFeatures(rgb2gray(I2), points2);

% تطبیق و نمایش ویژگی‌های مشابه
indexPairs = matchFeatures(features1, features2); 
matchedPoints1 = validPoints1(indexPairs(:, 1));
matchedPoints2 = validPoints2(indexPairs(:, 2));

figure; ax = axes;
showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2,'montage','Parent',ax);
title(ax, 'نتایج تطابق و ویژگی‌های مشابه');

				
			

در این کد، ابتدا ویژگی‌های تصاویر با استفاده از detectSURFFeatures و extractFeatures استخراج شده و سپس با استفاده از matchFeatures و showMatchedFeatures ویژگی‌های مشابه بین دو تصویر تعیین و نمایش داده می‌شود.

دستور insertObjectAnnotation:

دستور insertObjectAnnotation یک دستور از جعبه ابزارهای MATLAB است که برای اضافه کردن اطلاعات پیشرفته به تصاویر استفاده می‌شود. این دستور برای ایجاد و اضافه کردن یک خط، قلمه، متن، قرقره یا مستطیل به یک تصویر یا تصویر دوبعدی استفاده می‌شود.

 ورودی‌های دستور insertObjectAnnotation:

1. **تصویر ورودی (Image):** تصویر یا تصویری دوبعدی که می‌خواهید به آن اطلاعات پیشرفته اضافه کنید.

2. **نوع اندازه یا مکان (Position or Size Type):** موقعیت یا ابعاد شیءی که می‌خواهید به تصویر اضافه کنید.

3. **اطلاعات شیء (Annotation):** اطلاعاتی که می‌خواهید به تصویر اضافه شود، مانند متن، رنگ، ضخامت، و غیره.

خروجی دستور insertObjectAnnotation:

تغییر یا بهبود شده تصویر اصلی با اضافه شدن شیء جدید به آن است.

کاربرد دستور insertObjectAnnotation:

این دستور بیشتر برای اضافه کردن اشیاء گرافیکی، متن، یا دیگر اطلاعات به تصاویر استفاده می‌شود، مثلاً برای نشان دادن موقعیت یک شیء در یک تصویر یا برای اضافه کردن توضیحات به تصویر.

 نمونه کد MATLAB برای استفاده از insertObjectAnnotation:

				
					% خواندن یک تصویر
img = imread('peppers.png');

% ایجاد یک تصویر رنگی که مستقیماً بر روی آن یک متن اضافه کنیم
annotatedImg = insertObjectAnnotation(img, 'rectangle', [100, 100, 50, 50], 'This is a rectangle', 'Color', 'red');

% نمایش تصاویر اصلی و انتساب
figure;
imshow(img);
title('Original Image');

figure;
imshow(annotatedImg);
title('Annotated Image');


				
			

این کد یک مستطیل قرمز با متن “This is a rectangle” را در موقعیت (100،100) با ابعاد 50×50 به تصویر اصلی اضافه می‌کند و تصویر جدید را به عنوان خروجی نشان می‌دهد.

 دستور imshowpair:

در متلب، دستور imshowpair برای نمایش و مقایسه دو تصویر استفاده می‌شود. این دستور به شما کمک می‌کند تا دو تصویر را کنار هم نمایش داده و مقایسه کنید.

 ورودی‌های imshowpair:

1. A: تصویر اول (ماتریس تصویر یا تصویر RGB)

2. B: تصویر دوم (ماتریس تصویر یا تصویر RGB)

3. متغیر Name, Value اختیاری برای تنظیمات نمایش مانند نمایش رنگی، مقیاس تصویر و …

 خروجی imshowpair:

نمایش تصاویر A و B کنار هم به همراه هر تنظیماتی که ممکن است تعیین کنید.

 کاربرد imshowpair:

عموماً برای مقایسه دو تصویر مورد استفاده قرار می‌گیرد، اما می‌توانید از آن برای مقایسه سیگنال‌ها نیز استفاده کنید.

نمونه کد استفاده از imshowpair:

اینجا یک نمونه کد از استفاده از imshowpair در متلب برای مقایسه دو تصویر آمده است:

				
					% خواندن تصاویر
image1 = imread('image1.png');
image2 = imread('image2.png');

% نمایش و مقایسه تصاویر
figure;
imshowpair(image1, image2, 'ColorChannels', [1 2 0], 'Scaling', 'joint');
title('مقایسه دو تصویر');


				
			

این کد دو تصویر را کنار هم نمایش می‌دهد و اجازه می‌دهد تا مقایسه‌ای بین آن‌ها انجام شود. در اینجا ColorChannels برای تنظیم رنگ‌های قرمز و سبز و Scaling برای تنظیم مقیاس تصویر استفاده شده است.

از آنجایی که شما نیاز دارید که کد‌ها به زبان فارسی باشند، توجه داشته باشید که توابع و دستورات MATLAB برای زبان فارسی نیستند و ممکن است این موارد در اجرای صحیح کدها تاثیر گذار باشند.

دستور vision.GammaCorrector:

دستور vision.GammaCorrector در محیط MATLAB واحد پردازش تصویر استفاده می‌شود و برای اعمال تصحیح گاما به تصاویر ورودی به‌کار می‌رود. این دستور به شما این امکان را می‌دهد که مقادیر چگونگی پیکسل‌ها را تغییر داده و تصویر را بهبود دهید.

ورودی‌های دستور:

1. **تصویر ورودی:** تصویری که قصد دارید بر روی آن تصحیح گاما اعمال کنید.

2. **پارامتر گاما:** مقدار گاما برای تصحیح که معمولاً در بازه 0.1 تا 5 قرار دارد. مقدار 1 به معنی عدم تغییر است.

خروجی‌های دستور:

1. **تصویر خروجی:** تصویری که تصحیح گاما روی آن اعمال شده است.

این دستور بیشتر برای تصاویر مورد استفاده قرار می‌گیرد تا بقیه سیگنال‌ها. وظیفه اصلی این دستور افزایش یا کاهش کنتراست تصویر با تغییر شدیده‌ای در بازه سایه‌ها یا نورهای پایین فراهم می‌کند.

نمونه کد:

				
					% خواندن تصویر ورودی
inputImage = imread('input_image.jpg');

% تصحیح گاما برای مقدار گاما 1.5
gammaValue = 1.5;
outputImage = vision.GammaCorrector(inputImage, gammaValue);

% نمایش تصویر خروجی
imshow(outputImage);
title('Gamma Corrected Image');

% ذخیره تصویر خروجی
imwrite(outputImage, 'output_image_gammaCorrected.jpg');

				
			

در این کد، تصویر ورودی خوانده شده، سپس با استفاده از دستور vision.GammaCorrector با مقدار گاما 1.5 تصحیح شده و تصویر خروجی نمایش داده و در فایلی با نام output_image_gammaCorrected.jpg ذخیره می‌شود.

دستور vision.GammaCorrector:

دستور vision.GammaCorrector یکی از دستورات جعبه ابزارهای متلب است که برای اصلاح تصاویر با استفاده از تبدیل گاما به‌کار می‌رود. ویژگی گاما یک پارامتر است که مقدار آن می‌تواند از 0 تا بی‌نهایت تغییر کند.

ورودی‌ها:

1. I: تصویر ورودی

2. gamma: مقدار ویژگی گاما (معمولاً بین 0.1 تا 5 است)

خروجی:

1. J: تصویر اصلاح شده با تبدیل گاما

این دستور به‌طور عمده برای پیش‌پردازش تصاویر به‌کار می‌رود، مانند تصویردهی پزشکی و تصویربرداری دیجیتال.

نمونه کد استفاده از دستور vision.GammaCorrector در متلب:

				
					% تعریف تصویر و مقدار گاما
I = imread('image.jpg');
gamma = 1.5;

% اعمال تبدیل گاما بر روی تصویر
J = vision.GammaCorrector('gamma', gamma).step(I);

% نمایش تصویر اصلاح شده
imshow(J);

				
			

در این کد، تصویر image.jpg بارگیری شده و سپس با استفاده از vision.GammaCorrector و مقدار ویژگی گاما 1.5، تبدیل گاما بر روی تصویر اعمال شده و نتیجه نهایی نمایش داده می‌شود.

دستور binaryFeatures:

دستور binaryFeatures یکی از دستورات محاسباتی جعبه ابزارهای MATLAB است که برای استخراج ویژگی‌ها از یک تصویر دودویی (binary image) استفاده می‌شود. این دستور عموما برای تحلیل تصاویر یا پردازش تصاویر به صورت دیجیتال مورد استفاده قرار می‌گیرد.

ورودی‌های binaryFeatures:

1. binaryImage: تصویر دودویی که از آن می‌خواهید ویژگی‌ها را استخراج کنید.

2. features: مجموعه ویژگی‌هایی که مایلید از تصویر استخراج شوند.

خروجی‌های binaryFeatures:

1. مقادیر ویژگی‌های استخراج شده از تصویر دودویی.

این دستور برای تصاویر دودویی (تصاویری که فقط دارای دو رنگ سفید و سیاه هستند) استفاده می‌شود و می‌تواند برای تشخیص الگوها، تحلیل شکل، شمارش اشیاء و دیگر کاربردهای پردازش تصویر مورد استفاده قرار گیرد.

نمونه کد برای استفاده از binaryFeatures در MATLAB:

				
					% تولید تصویر دودویی نمونه
binaryImage = randi([0 1], 100, 100);

% استخراج ویژگی‌های مختلف از تصویر دودویی
features = binaryFeatures(binaryImage, 'Area', 'Perimeter', 'Eccentricity');

disp(features);

				
			

این کد یک تصویر دودویی تصادفی ایجاد می‌کند و سپس ویژگی‌های مختلف مانند مساحت، محیط و فرم آن را استخراج می‌کند و مقادیر آن‌ها را چاپ می‌کند.

دستور BRISKPoints:

دستور BRISKPoints یکی از دستوراتی است که در بسته‌ی Computer Vision System Toolbox از نرم افزار MATLAB وجود دارد. این دستور برای استخراج نقاط و ویژگی‌های تصویر از طریق الگوریتم BRISK (Binary Robust Invariant Scalable Keypoints) استفاده می‌شود.

ورودی:

ورودی این دستور تنها یکی از یک عکس یا تصویر با فرمت grayscale به عنوان تصویر ورودی است.

خروجی:

خروجی این دستور شامل نقاط و ویژگی‌های یافت شده توسط الگوریتم BRISK بر روی تصویر ورودی است. این نقاط ممکن است شامل موقعیت (مختصات x و y)، مقدار شدت نوری و ویژگی‌های دیگر مربوط به هر نقطه باشد.

کاربرد:

این دستور برای استخراج و استفاده از نقاط کلیدی و ویژگی‌های تصویر به منظور تشخیص الگوها، تطبیق تصاویر و دیگر وظایف پردازش تصویر و بینایی ماشین مورد استفاده قرار می‌گیرد.

نمونه کد:

برای استفاده از BRISKPoints در MATLAB، می‌توانید از مثال زیر استفاده کنید:

				
					% خواندن تصویر
image = imread('sample_image.jpg');

% تبدیل تصویر به grayscale اگر نیاز باشد
gray_image = rgb2gray(image);

% ایجاد شیء BRISK
pointsBRISK = detectBRISKFeatures(gray_image);

% نمایش نقاط یافت شده بر روی تصویر
imshow(gray_image); hold on;
plot(pointsBRISK);


				
			

در این مثال، ابتدا تصویر ورودی خوانده شده و به حالت grayscale تبدیل شده است. سپس با استفاده از detectBRISKFeatures که یک تابع است که الگوریتم BRISK را انجام می‌دهد، نقاط کلیدی یافته شده و روی تصویر نمایش داده شده‌اند.

لطفا توجه داشته باشید که بموجب محدودیت‌های من، ممکن است اطلاعات جزئی تر یا به روز تر از این در مورد BRISKPoints و استفاده‌ی آن در MATLAB ارائه شود.

دستور KAZEPoints:

دستور KAZEPoints یک دستور مرتبط با پردازش تصویر در محیط نرم‌افزار MATLAB است. این دستور برای استخراج ویژگی‌های مهم از تصاویر استفاده می‌شود. این دستور برای تشخیص و نشانه گذاری نقطه‌های کلیدی در تصویر با استفاده از روش‌های تشخیص نقطه‌های ویژه مبتنی بر مقیاس متنوع استفاده می‌شود.

  • ورودی‌های اصلی برای این دستور عبارتند از تصویر ورودی که باید یک تصویر دوبعدی باشد و پارامترهایی که در صورت نیاز می‌توانند شامل پارامترهای تنظیم نقطه‌های ویژه باشند.
  • خروجی اصلی این دستور شامل مختصات نقاط کلیدی است که در تصویر یافت شده‌اند. این نقاط معمولاً به عنوان نقاط ویژه برای استفاده در الگوریتم‌های تشخیص الگو و مطابقت به کار می‌روند.

این دستور معمولاً برای پردازش تصاویر به‌کار می‌رود و به کاربران امکان می‌دهد تا نقاط مهم ویژه در تصویر‌ها را تشخیص داده و برای اهداف مختلفی مانند تطبیق و تطبیق الگو، ردیابی شی، تشخیص شی و … استفاده کنند.

نمونه کد استفاده از دستور KAZEPoints در MATLAB:

				
					% خواندن تصویر
img = imread('example.jpg');

% تبدیل تصویر به تصویر خاکستری اگر نیاز باشد
grayImg = rgb2gray(img);

% فراخوانی دستور KAZEPoints
points = detectKAZEFeatures(grayImg);

% نمایش نقاط یافت شده روی تصویر
imshow(img);
hold on;
plot(points.selectStrongest(50));
hold off;


				
			

این کد یک تصویر را می‌خواند، نقاط کلیدی با استفاده از دستور KAZEPoints استخراج می‌کند و سپس نقاطی که یافت شده‌اند را روی تصویر نشان می‌دهد.

دستور cornerPoints:

دستور cornerPoints یکی از دستورات جعبه ابزارهای MATLAB برای استخراج نقاط گوشه‌ای یا corner points از تصاویر است. این نقاط گوشه‌ای معمولا نقاطی هستند که تفاوت شدیدی در اندازه یا رنگ و یا شدت نور با اطراف خود دارند.

 ورودی‌ها:

دستور cornerPoints به عنوان ورودی یک تصویر یا یک نویز سیگنال را می‌پذیرد.

خروجی:

خروجی این دستور نقاط گوشه‌ای است که از تصویر یا سیگنال ورودی استخراج شده‌اند.

 کاربرد:

این دستور معمولا برای تصاویر دیجیتال و پردازش تصویر مورد استفاده قرار می‌گیرد به منظور شناسایی نقاط ویژه و تفاوت‌های مهم در تصویر.

نمونه کد:

در زیر یک نمونه کد برای استفاده از cornerPoints در MATLAB آمده است:

				
					% خواندن تصویر
image = imread('example.jpg');

% تبدیل تصویر به تصویر خاکستری
grayImage = rgb2gray(image);

% استخراج نقاط گوشه ای از تصویر
points = cornerPoints(grayImage, 'MinQuality', 0.1);

% نمایش تصویر اصلی همراه با نقاط گوشه ای روی آن
imshow(image);
hold on;
plot(points);


				
			

لازم به ذکر است که برای استفاده از این دستور لازم است که از نسخه‌های جدیدتر MATLAB مانند R2018a یا بالاتر استفاده کنید.

دستور cornerPoints:

دستور cornerPoints یکی از دستورات مهم در پردازش تصاویر متلب است که برای تشخیص و استخراج نقاط نقطه‌ای گوشه‌ای در تصاویر استفاده می‌شود. این نقاط نقطه‌ای گوشه‌ای ممکن است نشانگر تغییرات شدید در شدت رنگ یا ویژگی‌های ساختاری یک تصویر باشند و بیشتر در الگوها و یا گوشه‌های تصاویر موجود باشد.

برای استفاده از دستور cornerPoints به عنوان ورودی به آن باید تصویری که می‌خواهید ویژگی‌های گوشه‌ای آن استخراج شود، را وارد کنید. به عنوان خروجی، این دستور مجموعه‌ای از نقاط نقطه‌ای گوشه‌ای روی تصویر را تشخیص داده و خروجی‌ای که شامل موقعیت (x، y) هر نقطه گوشهای در تصویر می‌باشد را به شما ارائه می‌دهد.

دستور cornerPoints بیشتر برای تصاویر دیجیتال و پردازش تصاویر به کار می‌رود تا بثبت ویژگی‌های خاص نقاط در تصاویر مختلف باشد.

یک مثال ساده از استفاده از دستور cornerPoints در متلب:

				
					% خواندن تصویر
img = imread('cameraman.tif');

% استخراج نقاط نقطه‌ای گوشه‌ای
pts = cornerPoints(img);

% نمایش تصویر و نقاط گوشه‌ها
imshow(img);
hold on;
plot(pts);

				
			

در این مثال، ابتدا تصویر خوانده شده و سپس نقاط نقطه‌ای گوشه‌ای با استفاده از دستور cornerPoints استخراج شده و در نهایت تصویر و نقاط گوشه‌ها روی آن رسم شده است.

دستور SURFPoints:

دستور SURFPoints در زبان برنامه‌نویسی و محیط محاسباتی MATLAB برای استخراج نقاط و ویژگی‌های برجسته در یک تصویر یا سیگنال مورد استفاده قرار می‌گیرد. این دستور با استفاده از الگوریتم SURF (Speeded Up Robust Features) نقاط ویژه را تشخیص می‌دهد.

ورودی‌های دستور SURFPoints:

1. **تصویر یا سیگنال ورودی**: این دستور نیاز به تصویر ورودی دارد که بر روی آن قرار است ویژگی‌ها استخراج شود.

 خروجی‌های دستور SURFPoints:

1. **SURF نقاط**: این دستور یک آرایه از نقاط SURF که ویژگی‌های برجسته تصویر را نشان می‌دهند برمی‌گرداند. هر نقطه ممکن است شامل موقعیت (x، y)، مقیاس و جهت ویژگی باشد.

 کاربرد دستور SURFPoints:

– این دستور بیشتر برای تصاویر استفاده می‌شود و به صورت خاص برای تشخیص ویژگی‌های برجسته و تطبیق تصاویر با یکدیگر مورد استفاده قرار می‌گیرد، مانند در پیدا کردن نقاط کلیدی برای همگام‌سازی تصاویر یا تشخیص الگوها.

 نمونه کد MATLAB برای استفاده از SURFPoints:

				
					% بارگذاری تصویر
img = imread('example.jpg');

% تبدیل تصویر به ماتریس خاکستری
grayImg = rgb2gray(img);

% استخراج نقاط SURF
points = detectSURFFeatures(grayImg);

% نمایش نقاط بر روی تصویر اصلی
imshow(img);
hold on;
plot(points.selectStrongest(50)); % نمایش 50 نقطه قوی‌تر


				
			

در این نمونه کد، ابتدا تصویر ورودی بارگذاری شده و به ماتریس خاکستری تبدیل شده است. سپس نقاط SURF از روی تصویر استخراج شده و 50 نقطه قوی‌تر بر روی تصویر نمایش داده شده است.

دستور MSERRegions:

دستور MSERRegions در محیط MATLAB برای استخراج مناطق یکنواخت و پایدار با ویژگی‌های خاص از تصاویر باینری و سطوح خاکستری استفاده می‌شود. این دستور برای تشخیص مناطق متبغیر خاص (MSER) به روش تشخیص قوه‌ای حالت ویژه بازیربسیاری از تصاویر موجود مبتنی بر عنصر به جای فضای رنگی است.

ورودی‌های اصلی این دستور شامل تصویر و یک ماسک اختیاری که منطقه مورد علاقه را مشخص می‌کند می‌باشد. خروجی اصلی MSERRegions شامل شیء رگیون‌های MSER است که شامل مکان و شکل مناطق تشخیص‌یافته است.

این دستور بیشتر برای تصاویر استفاده می‌شود و به ویژه برای تشخیص نواحی منظم و قابل تکرار در تصاویر پیچیده مفید است.

در زیر نمونه کد MATLAB برای استفاده از دستور MSERRegions آورده شده است:

				
					% خواندن تصویر
I = imread('image.jpg');

% تبدیل تصویر به تصویر خاکستری
Igray = rgb2gray(I);

% مقداردهی اولیه از MSER
mserRegions = detectMSERFeatures(Igray);

% نمایش نتایج
figure; imshow(I); hold on;
plot(mserRegions, 'showPixelList', true, 'showEllipses',false);
title('MSER Regions');
hold off;

				
			

این کد یک تصویر را می‌خواند، آن را به تصویر خاکستری تبدیل می‌کند، مناطق MSER را استخراج می‌کند و سپس نتایج را نمایش می‌دهد.

دستور MSERRegions:

دستور MSERRegions در نرم افزار MATLAB برای استخراج ویژگی‌های ناحیه‌های تشکیل کننده از ورودی تصویر به عنوان نقاط ویژه و یا نواحی یاد می‌شود. برای استفاده از این دستور، شما باید تصویر ورودی خود را به عنوان ورودی تابع این دستور دهید و خروجی آن شامل یک ساختار داده به نام MSERRegions است که شامل اطلاعات ناحیه‌های استخراج شده می‌باشد.

این دستور بیشتر برای تصاویر استفاده می‌شود و به صورت خاص برای استخراج ویژگی‌های منظقه ای استفاده می‌شود.

نمونه کد برای استفاده از دستور MSERRegions در MATLAB ممکن است به صورت زیر باشد:

				
					% خواندن تصویر
I = imread('example.jpg');

% تبدیل تصویر به تصویر خاکستری
grayImage = rgb2gray(I);

% استخراج نواحی MSER از تصویر
regions = detectMSERFeatures(grayImage);

% نمایش نواحی استخراج شده
imshow(I); hold on;
plot(regions, 'showPixelList', true, 'showEllipses', false);
hold off;

				
			

در این کد، تصویر example.jpg خوانده شده و سپس با استفاده از تابع detectMSERFeatures نواحی MSER از تصویر استخراج شده و در نهایت با استفاده از دستورات imshow و plot نواحی استخراج شده روی تصویر نمایش داده می‌شود.

دستور ORBPoints:

دستور ORBPoints یکی از دستورات مربوط به پردازش تصویر در محیط نرم‌افزار MATLAB است. این دستور برای استخراج نقاط ویژه به منظور تشخیص الگوها و شئ‌ها در تصاویر استفاده می‌شود. الگوریتم ORB (Oriented FAST and Rotated BRIEF) توسط Ethan Rublee و همکارانش در سال 2011 ارائه شد و از دقت و سرعت بالایی برخوردار است.

 ورودی‌ها:

برای استفاده از دستور ORBPoints باید یکی یا چند تصویر به عنوان ورودی داده شود.

 خروجی:

این دستور مجموعه‌ای از نقاط ویژه (از نوع ORBPoints object) را استخراج می‌کند که هر نقطه ویژه شامل مختصات (x و y) نقطه در تصویر و همچنین فاصله-جهت آن نقطه می‌باشد.

کاربرد:

الگوریتم ORB برای تشخیص الگوها و یافتن نقاط کلیدی در تصاویر استفاده می‌شود. از این روش برای شناسایی الگوها در تصاویر، پروژه‌های بینایی ماشین، تطبیق تصاویر و ردیابی اشیاء استفاده می‌شود.

نمونه کد:

				
					% خواندن تصویر
img = imread('path_to_your_image.jpg');

% تبدیل تصویر به تصویر خاکستری اگر نیاز است
grayImg = rgb2gray(img);

% استخراج نقاط ویژه با استفاده از دستور ORBPoints
points = detectORBFeatures(grayImg);

% نمایش تصویر با نقاط ویژه استخراج شده
imshow(img); hold on;
plot(points);

				
			

در این نمونه کد، ابتدا تصویر خوانده شده و سپس به تصویر خاکستری تبدیل می‌شود. سپس با استفاده از detectORBFeatures نقاط ویژه تصویر استخراج می‌شوند و در نهایت تصویر کنار نقاط ویژه رسم می‌شود.

دستور affine2d:

دستور affine2d یک دستور در محیط MATLAB است که برای تعریف تبدیل‌های خطی ۲D، اعمال تبدیل‌های گردش، اندازه‌گیری و تراکیب این تبدیل‌ها برای تصاویر یا سیگنال‌های ۲D استفاده می‌شود. این دستور به شما امکان می‌دهد تا تبدیل‌های مختلفی اعمال کنید مانند انتقال، چرخش، بزرگنمایی و تراکیب مختلف این تبدیل‌ها.

ورودی‌های دستور affine2d عبارتند از:

1. ماتریس ۲×۳ تبدیل خطی که وجه‌های آن تعیین می‌کند که چگونه تصویر یا سیگنال داده شده باید تغییر کند.

خروجی این دستور عبارت است از:

1. یک شیء affine2d که شما می‌توانید از آن برای اعمال تبدیل‌های مختلف بر روی تصاویر یا سیگنال‌های ۲D استفاده کنید.

این دستور به خصوص برای پردازش تصاویر و سیگنال‌های ۲D مفید است. با استفاده از این دستور، می‌توانید تصاویر را تغییر اندازه دهید، چرخش دهید، منعکس کنید و تغییرات دیگری روی آن‌ها اعمال کنید.

نمونه‌ای از استفاده از دستور affine2d در MATLAB به صورت زیر است:

				
					% تعریف یک ماتریس تبدیل برای یک تغییر اندازه با بزرگنمایی ۲ برابر
T = [2, 0, 0; 0, 2, 0];

% ایجاد یک شیء affine2d بر اساس ماتریس تبدیل تعریف شده
affine_trans = affine2d(T);

% اعمال تبدیل بر روی یک تصویر مثالی
input_image = imread('example.jpg');
output_image = imwarp(input_image, affine_trans);

% نمایش تصویر اصلی و تصویر تبدیل شده
subplot(1, 2, 1);
imshow(input_image);
title('تصویر اصلی');

subplot(1, 2, 2);
imshow(output_image);
title('تصویر با تبدیل affine2d');


				
			

این کد یک تصویر را با اعمال تبدیل affine2d به اندازه دو برابر بزرگ‌تر می‌کند و تصویر اصلی و تصویر تبدیل شده را نمایش می‌دهد.

دستور bagOfFeatures:

دستور bagOfFeatures یکی از ابزارهای پردازش تصویر در محیط نرم‌افزار MATLAB است که برای استخراج ویژگی‌ها از تصاویر استفاده می‌شود. این دستور معمولاً به منظور ایجاد یک مدل سازی از تصاویر و یافتن ویژگی‌های مهم آنها برای استفاده در مراحل بعدی پردازش تصویر مورد استفاده قرار می‌گیرد.

ورودی‌های مهم برای این دستور عبارتند از:

1. مجموعه‌ای از تصاویر به عنوان داده ورودی

2. تنظیمات مربوط به استخراج ویژگی‌ها مانند نوع الگوریتم استخراج ویژگی و تنظیمات مربوط به آن

خروجی این دستور می‌تواند شامل یک مدل کیسه از ویژگی‌ها (Bag of Features) باشد که می‌تواند برای دسته‌بندی تصاویر، تشخیص الگوها یا سایر وظایف مربوط به پردازش تصویر مورد استفاده قرار گیرد.

این دستور معمولاً برای پردازش تصاویر استفاده می‌شود و یکی از کاربردهای مهم آن دسته‌بندی تصاویر بر اساس ویژگی‌های آنها است.

نمونه کدی برای استفاده از دستور bagOfFeatures در MATLAB:

				
					% خواندن تصاویر آموزشی
imds = imageDatastore('path_to_images_directory');

% تنظیمات استخراج ویژگی‌ها
bag = bagOfFeatures(imds,'Verbose',true);

% نمایش ویژگی‌های شناساگر ایجاد شده
show(bag)


				
			

لطفاً دقت کنید که در کد بالا باید path_to_images_directory را با مسیر واقعی پوشه حاوی تصاویر خود در سیستم خود جایگزین نمایید.

دستور invertedImageIndex:

دستور invertedImageIndex یک دستور از جعبه ابزارهای آماری و پردازش تصویر MATLAB است که برای استخراج ویژگی از تصاویر استفاده می‌شود. این دستور به شما امکان می‌دهد تا نقاط کلیدی برای مدل‌های تشخیصی و طبقه‌بندی تصاویر را استخراج کرده و از آنها برای تحلیل تصاویر استفاده کنید.

برای استفاده از دستور invertedImageIndex به عنوان ورودی باید تنها تصویر مورد نظر را داشته باشید. این دستور به شما ماتریسی از ایندکس‌های نقاط کلیدی معکوس تصویر را بازمی‌گرداند.

تصویرها نسبت به تشخیص الگوها، شناسایی اشیا، بازسازی تصاویر و تحلیل تصاویر از استفاده‌های شایع این دستور در MATLAB هستند.

نمونه‌کد زیر نحوه استفاده از دستور invertedImageIndex در MATLAB را نشان می‌دهد:

				
					% خواندن تصویر
img = imread('example.jpg');

% تبدیل تصویر به تصویر خاکستری اگر لازم باشد
if size(img, 3) == 3
    img_gray = rgb2gray(img);
else
    img_gray = img;
end

% استفاده از دستور invertedImageIndex
indices = invertedImageIndex(img_gray);

% نمایش نقاط کلیدی معکوس تصویر
imshow(img_gray);
hold on;
plot(indices(:,1), indices(:,2), 'r*');
hold off;

				
			

در این کد، ابتدا تصویر ورودی خوانده شده و اگر تصویر رنگی باشد، به تصویر خاکستری تبدیل می‌شود. سپس دستور invertedImageIndex بر روی تصویر خاکستری فراخوانی شده و نقاط کلیدی معکوس تصویر استخراج شده و در نهایت به همراه تصویر نمایش داده می‌شوند.

دستور retrieveImages:

retrieveImages یکی از دستورات جعبه ابزارهای متلب به منظور استخراج ویژگی از تصاویر است.

 ورودی‌های و خروجی‌های دستور retrieveImages:

ورودی:

 – تصویر یا تصاویری که می‌خواهید ویژگی‌های آن‌ها استخراج شود.

خروجی:

 – ویژگی‌های استخراج شده از تصاویر. این ویژگی‌ها ممکن است شامل اطلاعات مورد نظر شما برای تصویر باشد که به عنوان ورودی مشخص کرده‌اید.

 کاربرد retrieveImages:

retrieveImages بیشتر برای استخراج ویژگی‌های مفید از تصاویر استفاده می‌شود، که در پردازش تصویر، تشخیص الگو، تشخیص شیء و بسیاری دیگر از برنامه‌ها مورد استفاده قرار می‌گیرد.

نمونه کد استفاده از retrieveImages در محیط متلب:

				
					% خواندن تصویر
img = imread('peppers.png');

% انتخاب ویژگی‌های مورد نظر برای استخراج
featureSet = {'edge', 'texture', 'color'};

% استخراج ویژگی‌ها
features = retrieveImages(img, featureSet);

% نمایش ویژگی‌های استخراج شده
disp(features);

				
			

در این کد، ابتدا یک تصویر به نام ‘peppers.png’ خوانده شده و سپس مجموعه ای از ویژگی‌های مورد نظر برای استخراج مشخص شده است. سپس با استفاده از retrieveImages ویژگی‌های مشخص شده از تصویر استخراج می‌شوند و در نهایت نتایج نمایش داده می‌شود.

دستور evaluateImageRetrieval:

در جعبه ابزارهای متلب، دستور evaluateImageRetrieval برای ارزیابی مدل‌های بازیابی تصاویر استفاده می‌شود. این دستور برای استخراج ویژگی‌ها از تصاویر و سپس مقایسه و بازیابی تصاویر مورد استفاده قرار می‌گیرد. 

 ورودی‌ها:

1. **مدل بازیابی تصاویر:** یک مدل بازیابی تصاویر برای ارزیابی.

2. **مجموعه داده:** مجموعه تصاویری که می‌خواهید این مدل روی آن اعمال شود.

خروجی:

– نتایج ارزیابی مدل بازیابی تصاویر بر اساس معیارهای تعیین‌شده از جمله دقت بازیابی، نرخ بازیابی و معیارهای دیگر.

کاربرد:

این دستور برای تصاویر، به طور خاص برای مسائل پردازش تصویر و بازیابی تصویر مورد استفاده قرار می‌گیرد. این قابلیت برای بررسی و ارزیابی کیفیت و کارایی مدل‌های بازیابی تصاویر استفاده می‌شود.

 نمونه کد:

				
					% تعریف مسیر مدل و مسیر دیتاست
modelPath = 'path/to/your/model';
dataPath = 'path/to/your/dataset';

% بارگذاری مدل و دیتاست
model = load(modelPath);
dataset = load(dataPath);

% اعمال مدل بر روی دیتاست
results = evaluateImageRetrieval(model, dataset);

% نمایش نتایج ارزیابی
disp(results);


				
			

لطفا توجه داشته باشید که نمونه کد فوق تنها یک الگوی کلی برای استفاده از evaluateImageRetrieval در متلب می‌باشد و باید محتوای آن را بر اساس نیاز و داده‌های خود تنظیم کنید.

دستور estimateGeometricTransform:

دستور estimateGeometricTransform در محیط نرم افزار MATLAB برای انتقال هندسی بین دو تصویر به کمک روش های تطبیق قابل استفاده است. این دستور از توانایی همخوانی نقاط ویژه در دو تصویر برای به دست آوردن تبدیل هندسی بین آن‌ها استفاده می‌کند.

 ورودی‌ها:

1. **نقاط مرجع (Reference Points)**: مجموعه‌ای از نقاط ویژه روی تصویری که به عنوان تصویر مرجع مورد استفاده قرار می‌گیرد.

2. **نقاط مقصد (Target Points)**: مجموعه‌ای از نقاط ویژه روی تصویری که به عنوان تصویر هدف مورد استفاده قرار می‌گیرد.

خروجی:

1. **تبدیل هندسی (Geometric Transformation)**: پارامترهای تبدیل هندسی بین دو تصویر که به عنوان خروجی این دستور بازگردانده می‌شود.

کاربرد:

این دستور بیشتر برای تصویر ویدیو و عکس مورد استفاده است تا بتوان تصاویر یا ویدیوهایی که تغییرات هندسی و انتقال داشته‌اند را همسان کردن و یا تطبیق داد.

 نمونه کد:

				
					% تعریف نقاط مرجع و مقصد
refPoints = [10 10; 50 10; 10 50];
targetPoints = [15 15; 60 20; 20 55];

% محاسبه تبدیل هندسی
tform = estimateGeometricTransform(refPoints, targetPoints, 'similarity');

% اعمال تبدیل بر روی تصویر
outputImage = imwarp(inputImage, tform);

% نمایش تصویر اصلی و تصویر خروجی
figure;
subplot(1, 2, 1); imshow(inputImage); title('تصویر اصلی');
subplot(1, 2, 2); imshow(outputImage); title('تصویر خروجی');


				
			

در این نمونه کد، ابتدا نقاط مرجع و مقصد تعریف شده و سپس با استفاده از estimateGeometricTransform، تبدیل هندسی محاسبه شده و بر روی تصویر اعمال می‌شود.

آموزش روش های استخراج ویژگی در متلب

مطالعه موردی:

استفاده از روش‌های استخراج ویژگی در تشخیص الگوهای تصویری با استفاده از متلب برای مطالعه موردی، فرض کنید که ما قصد داریم الگوهای مختلفی را از تصاویر استخراج کرده و آنها را تشخیص دهیم. در این صورت، می‌توانیم از روش‌های استخراج ویژگی مانند استفاده از فیلترینگ یا شبکه‌های عصبی برای استخراج ویژگی‌های مهم از تصویر استفاده کنیم. سپس با استفاده از الگوریتم‌های تشخیص الگو، می‌توانیم الگوهای مورد نظر را تشخیص داده و شناسایی کنیم. این روش می‌تواند در حوزه‌های مختلفی از جمله تشخیص چهره، تشخیص خودروها و … مورد استفاده قرار گیرد.

نتیجه گیری:

به طور کلی، استخراج ویژگی یکی از مراحل مهم در پردازش تصویر است که با استفاده از روش‌های مناسب می‌توانیم اطلاعات مفید و مهم را از تصویر استخراج کرده و برای تحلیل و شناسایی الگوها و اشیاء مختلف استفاده کنیم. استفاده از متلب به عنوان یک ابزار قدرتمند برای انجام این فرایند، می‌تواند به ما کمک بزرگی در تحلیل تصاویر و شناسایی الگوها بکند.

ادامه مطلب