nina222 56 مالک ارسال شده در 12 اردیبهشت، 2015 این چه حرفیه، انجمن برای سوال کردن دیگه. خب زهرا خانوم توضیح دادن، شما سطوح روشنایی تصویر ورودیت بین 0 تا 255 هست، این منحنی cdf هم که حساب کردی توی 256 تا درایه داره که مقادیر جدید این پیکسل های داخلش قرار داره، تنها کاری که باید انجام بشه اینه که دونه دونه پیکسل ها مفدارشون بررسی بشه (دو تا حلقه اینکار رو می کنن، جهت افقی و عمودی)، بعد هر مقداری داست با یک جمع می کنیم چون آدرس ها توی متلب از یک شروع میشه دیگه، مقدار جدید رو از بردار cdf بر می داریم، مثلا اگه مقدار قبلی پیکسلمون 10 باشه، مقدار جدیدش میشه درایه 11 بردار cdfمون. در مورد اون فرمول هم باید بیشتر توضیح داده بشه، هر کدوم از این متغیر هایی که استفاده شدن چی هستن، int فکر کنم برای integer باشه، L هم تعداد سطوح روشنایی. سلام مقدار جدید رو چطور بر می داریم؟ یا اون out که من گذاشتم درست هست یا غلط؟ 1
Imaaan 17059 ارسال شده در 12 اردیبهشت، 2015 سلاممقدار جدید رو چطور بر می داریم؟ یا اون out که من گذاشتم درست هست یا غلط؟ مثلا تصویر وردی مون این باشه با 8 سطح روشنایی: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام خب ماتریس cdfمون رو در 7 ضرب کردیم و رندشون کردیم، مثل ورودی مون بین 0 تا 7 بشه: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام یعنی به جای سطح روشنایی اول و دوم باید 0 بذاریم، برای سطح روشنایی سوم باید 1 بذاریم، برای سطح روشنایی چهارم (یعنی 3) باید 3 بذاریم، همینطور تا آخر، تصویر خورجی مون میشه این: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام 2
nina222 56 مالک ارسال شده در 12 اردیبهشت، 2015 مثلا تصویر وردی مون این باشه با 8 سطح روشنایی: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام خب ماتریس cdfمون رو در 7 ضرب کردیم و رندشون کردیم، مثل ورودی مون بین 0 تا 7 بشه: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام یعنی به جای سطح روشنایی اول و دوم باید 0 بذاریم، برای سطح روشنایی سوم باید 1 بذاریم، برای سطح روشنایی چهارم (یعنی 3) باید 3 بذاریم، همینطور تا آخر، تصویر خورجی مون میشه این: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام مرسی. خیلی محبت کردید همه دوستان اما من نتونستم پیاده سازیش کنم. 1
zahra jalili 746 ارسال شده در 12 اردیبهشت، 2015 این الگوریتم تعدیل سازی هیستوگرام هست: اینم کد مربوطه که من ازش جواب گرفتم: f=imread('0.jpg'); hnorm=imhist(f)./ numel(f); cdf=round(cumsum(hnorm)*255); for i=1:size(f,1) for j=1:size(f,2) f(i,j)=cdf(f(i,j)+1); endend imhist(f) تصویری که هم گذاشتین، واضح نیست! یه کد دیگه هم از تعدیل سازی هیستوگرام دارم که بدون استفاده از توابع متلب نوشته شده، اگه خواستی برات بفرستم. 2
nina222 56 مالک ارسال شده در 12 اردیبهشت، 2015 سلام زهرا جان دستتون درد نکنه محبت کردید من دوباره عکس از هر کدوم فرمول ها جدا عکس گرفتم(3 تا عکس) محبت می کنید یه نگاه بندازید؟ عزیزم لطف کردید من برام با حلقه ها کار کردن خیلی سخت هست. الانم بس که استرس دارم دیگه اوضاع بدتر شده. 2
nina222 56 مالک ارسال شده در 12 اردیبهشت، 2015 سلام زهرا جان دستتون درد نکنه محبت کردید من دوباره عکس از هر کدوم فرمول ها جدا عکس گرفتم(3 تا عکس) محبت می کنید یه نگاه بندازید؟ عزیزم لطف کردید من برام با حلقه ها کار کردن خیلی سخت هست. الانم بس که استرس دارم دیگه اوضاع بدتر شده. به اون L-1 و 0.5 تو فرمول3 شک دارم که نکنه فرق داشته باشه 1
Imaaan 17059 ارسال شده در 15 اردیبهشت، 2015 سلام زهرا جان دستتون درد نکنه محبت کردید من دوباره عکس از هر کدوم فرمول ها جدا عکس گرفتم(3 تا عکس) محبت می کنید یه نگاه بندازید؟ عزیزم لطف کردید من برام با حلقه ها کار کردن خیلی سخت هست. الانم بس که استرس دارم دیگه اوضاع بدتر شده. به اون L-1 و 0.5 تو فرمول3 شک دارم که نکنه فرق داشته باشه سلام به نظرم L باید همون 256 (تعداد سطوح) باشه، که یکی کم می کنیم بشه ماکزیمم سطح روشنایی، اون نیم هم واسه این گذاشته اگه به مقدار بالایی نزدیک تر بود به اون گرد بشه، مثلا من عددم وقتی در L منهای یک ضرب میشه بدست بیاد، 200.75، همینجوری به پایین گرد کنه میشه 200، ولی وقتی با نیم جمع کنه بعد گردش کنه به پایین میشه 201. 3
nina222 56 مالک ارسال شده در 15 اردیبهشت، 2015 سلامبه نظرم L باید همون 256 (تعداد سطوح) باشه، که یکی کم می کنیم بشه ماکزیمم سطح روشنایی، اون نیم هم واسه این گذاشته اگه به مقدار بالایی نزدیک تر بود به اون گرد بشه، مثلا من عددم وقتی در L منهای یک ضرب میشه بدست بیاد، 200.75، همینجوری به پایین گرد کنه میشه 200، ولی وقتی با نیم جمع کنه بعد گردش کنه به پایین میشه 201. سلام پس احتمالا به جای استفاده از hiteq باید خود این فرمول رو پیاده سازی کنم. می دونید T و Tmin چطور محاسبه می شه؟ 1
Imaaan 17059 ارسال شده در 16 اردیبهشت، 2015 سلامپس احتمالا به جای استفاده از hiteq باید خود این فرمول رو پیاده سازی کنم. می دونید T و Tmin چطور محاسبه می شه؟ سلام خیلی شبیه histeq هست. T رو که فرمولش رو داری، وقتی محاسبه ش کردی، کوچکترین مقدارش میشه Tmin. 3
nina222 56 مالک ارسال شده در 20 اردیبهشت، 2015 سلام من چند تا سئوال داشتم . اگر راهنمایی بفرمایید ممنون میشم. ا) دستور hist ,histeq برای تصاویر از نوع unit8 هستند و نمی شه برای تصویر از نوع double استفاده بشن؟ 2) وقتی یه تصویر به double تبدیل می شه دیگه نمی شه خط افقی هیستوگرام از 0 تا 255 باشه؟ برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام وقتی بیشترین مقدار L یک هست چه طور باید خط افقی از 0 تا 255 باشه؟ چطوری رسمش کنم درست دستور plot(h,256) رو بلدم اما باز یه جور دیگه رسم می کنه. 1
Imaaan 17059 ارسال شده در 21 اردیبهشت، 2015 سلام من چند تا سئوال داشتم . اگر راهنمایی بفرمایید ممنون میشم. ا) دستور hist ,histeq برای تصاویر از نوع unit8 هستند و نمی شه برای تصویر از نوع double استفاده بشن؟ 2) وقتی یه تصویر به double تبدیل می شه دیگه نمی شه خط افقی هیستوگرام از 0 تا 255 باشه؟ برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام وقتی بیشترین مقدار L یک هست چه طور باید خط افقی از 0 تا 255 باشه؟ چطوری رسمش کنم درست دستور plot(h,256) رو بلدم اما باز یه جور دیگه رسم می کنه. سلام ببین نینا خانوم متلب تصویر دابل رو بین یک و صفر فرض می کنه، یعنی مقادیر بزگتر از یک رو یک در نظر می گیره و مقادیر کوچیکتر از صفر رو هم صفر، در واقع تصویرت رو تقسیم بر 255 می کنی. به جای دستور double برای تصویر از im2double استفاده کن، مقادیر خروجیش بین صفر و یک میشه: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام برای نمایشش هم باید از stem استفاده کنی که شبیه متلب بشه: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام 3
ارسال های توصیه شده