رسم هیستوگرام تصویر در متلب — راهنمای کاربردی

۱۱۳۲ بازدید
آخرین به‌روزرسانی: ۰۶ تیر ۱۴۰۲
زمان مطالعه: ۲ دقیقه
رسم هیستوگرام تصویر در متلب — راهنمای کاربردی

در این مطلب، روش رسم هیستوگرام تصویر در متلب مورد بررسی قرار می‌گیرد. این کار کاربردهای زیادی در حوزه‌های مختلف و به ویژه «پردازش تصویر» (Image Processing) دارد. برای مطالعه بیشتر پیرامون هیستوگرام، مطالعه مطلب «هیستوگرام (Histogram) و نمودارهای چگالی — راهنمای بصری سازی داده‌های تک‌ بُعدی در پایتون» توصیه می‌شود. نمودار هیستوگرام یک تصویر، نموداری است که توزیع شدت را در یک «تصویر شاخص‌گذاری شده» (Indexed Image) و یا سیاه و سفید نشان می‌دهد. این نمودار نشان می‌دهد که هر مقدار شدت چند بار در تصویر به وقوع پیوسته است. با استفاده از قطعه کدی که در ادامه آمده است، نمودار هیستوگرام یک تصویر با استفاده از توابع کتابخانه‌ای متلب (MATLAB) ترسیم می‌شود.

فهرست مطالب این نوشته
1% Read an Image in MATLAB Environment 
2img=imread('apple.jpg'); 
3  
4% Convert image to grayscale image 
5# if read image is an RGB image 
6img=rgb2gray(img); 
7  
8% Show histogram of image 
9# using imhist() function
10imhist(img); 

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

این تصاویر ورودی و خروجی نیز در ادامه آمده‌اند.

  • فایل تصویر منبع را در یک ماتریس تصویر بخوان.
  • اگر تصویر RGB است، آن را به سیاه و سفید تبدیل کن.
  • در ماتریس تصویر تکرار کن و تعداد تکرار هر مقدار ممکن برای شدت را محاسبه کن.
  • نمودار تعداد تکرارهای محاسبه شده را ترسیم کن.

رسم هیستوگرام تصویر در متلب

1% Read source image file  
2img = imread('apple.jpg'); 
3  
4% Convert image to grayscale image  
5img=rgb2gray(img); 
6  
7% get the dimension of the image  
8[x, y] = size(img); 
9  
10  
11% Create a frequency array of size 256 
12frequency = 1 : 256; 
13  
14count = 0; 
15  
16% Iterate over grayscale image matrix  
17% for every possible intensity value 
18% and count them 
19    
20for i = 1 : 256 
21    for j = 1 : x 
22        for k = 1 : y 
23  
24            % if image pixel value at location (j, k) is i-1 
25            % then increment count 
26            if img(j, k) == i-1 
27                    count = count + 1; 
28            end
29        end
30    end
31    % update ith position of frequency array with count 
32    frequency(i) = count; 
33  
34    % reset count 
35    count = 0; 
36  
37end
38  
39  
40n = 0 : 255; 
41  
42% Display Histogram 
43stem(n, frequency); 
44  
45grid on; 
46ylabel('Number of pixels with such intensity levels -->'); 
47xlabel('Intensity Levels  -->'); 
48title('HISTOGRAM OF THE IMAGE');

ورودی:

ترسیم هیستوگرام تصویر در متلب

خروجی:

ترسیم هیستوگرام تصویر در متلب

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۱۶ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Geeksforgeeks
۱ دیدگاه برای «رسم هیستوگرام تصویر در متلب — راهنمای کاربردی»

سلام من این دستور رو وارد مطلب کردم اما ازم ایراد گرفت ممنون میشم راهنمایی کنین .

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *