جستجو برای:
سبد خرید 0
  • خانه
  • محصولات
  • ویدئوهای آموزشی رایگان
  • مقالات
  • تماس با ما

ورود

گذرواژه خود را فراموش کرده اید؟

ثبت نام

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

هوش مصنوعی رضوان
  • خانه
  • محصولات
  • ویدئوهای آموزشی رایگان
  • مقالات
  • تماس با ما
ورود / ثبت نام
0

وبلاگ

هوش مصنوعی رضوان > فایل های آموزشی رایگان > تنظیم شدت روشنایی تصویر در متلب

تنظیم شدت روشنایی تصویر در متلب

فایل های آموزشی رایگان

توضیحات ویدئو

 
Intensity transforms در اصطلاح یعنی تبدیلات شدت نور ،که زیر مجموعه Image Enhansment است. در واقع ما بر اساس روشنایی و شدت نور هر بخش، پردازش‌هایی به منظور واضح‌تر شدن تصویر انجام می دهیم.
یک تابع مهم در حوزه Intensity transforms، تابع( Imadjust)است که کار ان در اصطلاح،تغییر روشنایی و تبدیل تصویر به یک تصویر واضح تر با یک نگاشت خطی اشباع شده است. در واقع این تابع واریانس (پراکندگی) شدت روشنایی پیکسل‌های تصویر را زیاد می‌کند. بدین ترتیب رنگ سفید سفیدتر و رنگ مشکی مشکی‌تر می شود و کنتراست (تفاوت شدت روشنایی) تصویر را زیاد می کند. (در تصویر اصلی که انتخاب کردیم واریانس تصویر کم بود سپس با استفاده از تابع Imadjust واریانس تصویر را زیاد کردیم ودر نتیجه تصویر واضح تر شد ). تابع imadjust کم ترین و بیش ترین مقدار روشنایی تصویر ورودی را پیدا می کند سپس ان را با استفاده از نگاشتی به کم‌ترین و بیش ترین مقدار خروجی ممکن می‌برد:
img=imadjust(img1)
در تابع بالا چون مقادیر ماتریس ورودی را تعیین نکردیم، تابع به صورت خودکار کم ترین و بیش‌ترین مقدار تصویر ورودی را بدست می‌آورد و با نگاشتی به 0 و 1 خروجی می برد. حال سوال پیش می آید که ایا میشود خودمان به صورت دستی کم ترین و بیش ترین مقدار ورودی محاسبه کنیم؟ بله، با استفاده از تابع stretchlim که به صورت خودکار کم ترین و بیش ترین مقدار روشنایی ورودی را بدست می آورد. همچنین تابع imadjust می تواند پارامتری به نام گاما به عنوان ورودی بپذیرد. اگر گاما بزرگتر از 1 بدهیم تصویر به رنگ مشکی میل می‌کند و اگر کم تر از 1 بدهیم تصویر به رنگ 0 میل می‌کند(  باید بهترین عدد پیدا کنیم مثلا  در کد زیر گاما برابر 0.5 است)
 img3=imadjust(img1,stretchlim(img1),[0  1],0.5)
علاوه بر خود تصویر بهبود یافته، نحوه عملکرد تابع imadjust و نتایج اعمال این تابع را با رسم هیستوگرام تصویر بهتر می‌توان بررسی کرد. برای رسم هیستوگرام تصویر می‌توانیم از تابعی به نام (imhist) استفاده کنیم که فراوانی هر یک از مقادیر روشنایی پیکسل‌ها را نمایش می‌دهد. در ادامه کدهای این روش را مشاهده می‌کنید:

کدهای پروژه

clc;
clear;
close all;
 
%%load image
img1=imread(‘pout.tif’);
 
img2=imadjust(img1);
img3=imadjust(img1,stretchlim(img1),[0  1],0.5);
img4=histeq(img1)
%%img4=imadjust(img1,stretchlim(img1),[0 1],2 );
 
figure;
subplot(2,2,1);
imshow(img1);
title(‘orginal image’);
subplot(2,2,2);
imshow(img2);
title(‘Result of imadjust’);
subplot(2,2,3);
imshow(img3);
title(‘Result of imadjust(2)’);
subplot(2,2,4);
imshow(img4);
title(‘Result of hesteq’);
figure;
subplot(2,2,1);
imhist(img1,256);
title(‘orginal image’);
subplot(2,2,2);
imhist(img2,256);
title(‘Result of imadjust’);
subplot(2,2,3);
imhist(img3,256);
title(‘Result of imadjust(2)’);
subplot(2,2,4);
imhist(img4,256);
title(‘Result of hesteq’);
یکی دیگر از پردازش‌های حوزه Intensity transforms، موضوع Histogram processing است. یعنی بر خلاف حالات قبل، مستقیم بر روی هیستوگرام پردازش هایی انجام شود. در اینجا یک تابع مهم به نام (histeq ) وجود دارد که کار آن به نوعی بهینه سازی شدت روشنایی تصویر است. در واقع تابع histeq با یکنواخت کردن هیستوگرام تا حد امکان  و افزایش پراکندگی تصویر واضح تری به ما خواهد داد.
یک امکان جالب دیگر، تبدیل تصویر اولیه با استفاده از تابع تطبیق تاریکی (Histogram Equalization) به تصویر اصلاح شده است. ‌در واقع ما می توانیم یک تابع به نام تابع هسته گاوسی تطبیق تاریکی تعریف کنیم و آن را به تابع histeq دهیم. ابتدا ما باید مشخصات پارامترهای مورد نظر خویش از هیستوگرام ایده‌آل خود را تعیین کنیم. این پارامترها شامل واریانس،میانگین و … است. 
شاید برای شما این سوال پیش آید که فایده این کار که  تصویر اصلی، یک هیستوگرام خاص را دنبال کند چیست؟ برخی مواقع ما می خواهیم یک شی خاص را در تصویر بیابیم و برای این کار نیاز به سطح روشنایی مشخصی در تصویر داریم. لذا از تابع تطبیق تاریکی کمک می‌گیریم. در ادامه کدهای مربوطه را مشاهده می‌کنید:
clc;
clear;
close all;
 
%%load image
img1=imread(‘pout.tif’);
 
npixel=numel(img1);
 
mu=180;
sigma=30
H=@(x) exp(-1/(2*sigma^2)*(x-mu).^2);
x=0:255;
hgram=H(x)
hgram=round(npixel*hgram/sum(hgram));
 
img2=histeq(img1,hgram);
figure;
subplot(2,2,1);
imshow(img1);
title(‘orginal image’);
 
subplot(2,2,2);
imshow(img2);
title(‘Result of histeq’);
subplot(2,2,3);
imhist(img1);
subplot(2,2,4);
imhist(img2);
 
  • خطوط اول برای پاک کردن پنجره کنسول، پاک کردن متغیرهای موجود در محیط کار و بستن همه پنجره‌های شکلی استفاده می‌شود.
  • سپس تصویر اولیه با فرمت TIFF با استفاده از تابع `imread` خوانده می‌شود. سپس تعداد پیکسل‌های تصویر با استفاده از تابع `numel` محاسبه می‌شود.
  • مقادیر میانگین (`mu`) و انحراف معیار (`sigma`) برای تابع هسته گاوسی تطبیق تاریکی تعیین می‌شوند.
  • تابع هسته گاوسی تطبیق تاریکی با استفاده از تابع مثلثی `H(x)` تعریف می‌شود و برای مقادیر `x` در بازه 0 تا 255 محاسبه می‌شود.
  • تابع هسته گاوسی تطبیق تاریکی با توجه به تعداد پیکسل‌های تصویر (`npixel`) و با تقسیم مقادیر هسته بر مجموع آن‌ها، نرمالیزه می‌شود.
  • تصویر اصلاح شده با استفاده از تابع `histeq` و تابع هسته گاوسی تطبیق تاریکی (`hgram`) به دست می‌آید. تابع `histeq` برای ایجاد توزیع هیستوگرام مساوی در تصویر استفاده می‌شود.
  • در این خطوط، تصاویر و هیستوگرام‌های تصویر اصلی و تصویر اصلاح شده نمایش داده می‌شوند. تصویر اصلی در subplot شماره 1 نمایش داده می‌شود و تصویر اصلاح شده در subplot شماره 2 نمایش داده می‌شود. همچنین، هیستوگرام تصویر اصلی در subplot شماره 3 نمایش داده می‌شود و هیستوگرام تصویر اصلاح شده در subplot شماره 4 نمایش داده می‌شود.
امیدواریم این پروژه برای شما مفید و کاربردی واقع شده باشد. هدف آکادمی هوش مصنوعی رضوان، به اشتراک ‌گذاری تجربیاتی ارزشمند در زمینه پردازش تصویر و هوش مصنوعی با شما مخاطب ارجمند است. لطفا از سایر آموزش‌های رایگان و دوره‌های آموزشی ما دیدن و ما را در شبکه‌های اجتماعی دنبال فرمایید.
قبلی پیاده سازی الگوریتم k-means در متلب
بعدی لبه یابی در متلب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • فایل های آموزشی رایگان
  • مقالات
دسته‌های محصولات
  • دوره ها
  • عمومی
نوشته‌های تازه
  • تحولی نوین در صنعت بیمه با هوش مصنوعی
  • سیستم‌های توصیه‌گر: راهنمای جامع
  • ربات هوش مصنوعی چیست؟ اشتراکات و کاربردهای رباتیک و هوش مصنوعی
  • تعریف هوش مصنوعی در زنجیره تأمین
  • هوش مصنوعی احساسی: درک و تحلیل احساسات انسانی
درباره ما

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

دسترسی سریع
  • دوره ها
  • تماس با ما
    نماد ها
    کلیه حقوق مادی و معنوی این سایت متعلق به هوش مصنوعی رضوان می‌باشد.
    اشتراک گذاری در شبکه های اجتماعی
    ارسال به ایمیل
    https://airezvan.com/?p=9366
    دسته بندی دوره ها
    دسته بندی بلاگ
    دوره های من
    دسته بندی دوره ها

    دوره ها

    • 3 دوره
    دسته بندی بلاگ

    فایل های آموزشی رایگان

    • 32 نوشته

    مقالات

    • 56 نوشته
    دوره های من
    برای مشاهده خریدهای خود باید وارد حساب کاربری خود شوید
    Facebook Twitter Youtube Instagram Whatsapp
    مرورگر شما از HTML5 پشتیبانی نمی کند.