بهینه سازی هیستوگرام با تابع توزیع تجمعی
تابع توزیع تجمعی یا cdn که از واژه ی Cumulative distribution function می آید در بحث بهینهسازی هیستوگرام کاربرد خوبی دارد؛ در این نوشته با کمک تابیع توزیع تجمعی تصویر ورودی خود را که یک تصویر تاریک است با بهینهسازی هیستوگرام در متلب روشن و قابل دیدن می کنیم.
با یکی دیگر از تمرین های متلب و بحث پردازش تصویر همراه ما باشید.
پیشنهاد نویسنده : کار با correlation در متلب
بهینه سازی هیستوگرام با تابع توزیع تجمعی
تصویر ورودی ما تصویر زیر می باشد:
کد بهینه سازی هیستوگرام با متلب:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | clc; close all; clear all; img1 = imread('histogram.jpg'); img2 = img1; pixel_histogram = zeros(1, 256); pixel_cdf = zeros(1, 256); pixel_new_value = zeros(1, 256); for i = 1 : 563 for j = 1 : 1000 pixel_histogram(1, img1(i,j) + 1) = pixel_histogram(1, img1(i,j) + 1) + 1; end end pixel_cdf(1, 1) = pixel_histogram(1, 1); min_cdf = pixel_histogram(1, 1); max_cdf = pixel_histogram(1, 1); for k = 2 : 256 pixel_cdf(1, k) = pixel_cdf(1, k - 1) + pixel_histogram(1, k); if( pixel_cdf(1, k) > max_cdf ) max_cdf = pixel_cdf(1, k); end if( pixel_cdf(1, k) < min_cdf ) min_cdf = pixel_cdf(1, k); end end for k = 1 : 256 pixel_new_value(1, k) = round( ( ( pixel_cdf(1, k) - min_cdf ) / ( max_cdf - min_cdf ) ) * 255 ); end for i = 1 : 563 for j = 1 : 1000 img2(i,j) = pixel_new_value(1, img1(i,j) + 1); end end imshow(img1); figure, imshow(img2); |
نتیجه نهایی بهینه سازی هیستوگرام :
برای مطالعه ی محتوای بیشتر در ارتباط با متلب روی این لینک کلیک کنید.
نظرات خود را برای ما بنویسید.
موفق باشید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]