PDA

View Full Version : Histogram Matching



مهدی هادیان2
پنج شنبه 10 اردیبهشت 1394, 16:18 عصر
بسم الله الرحمن الرحیم
با سلام
Histogram Matching چیست و چه جوری به دست می آوریم؟
با سپاس فراوان

rahnema1
پنج شنبه 10 اردیبهشت 1394, 22:17 عصر
سلام
روشی هست که هیستوگرام یک تصویر را می خواهیم شبیه یک هیستوگرام دیگه کنیم
در این تایک بحث شده:
http://barnamenevis.org/showthread.php?484972
راستی ظاهرا تازه دارید به این مباحث می پردازید یه سوال برام پیش اومده شما این سوالها را از کجا پیدا می کنید ؟ :)

nina222
پنج شنبه 10 اردیبهشت 1394, 22:51 عصر
بسم الله الرحمن الرحیم
با سلام
Histogram Matching چیست و چه جوری به دست می آوریم؟
با سپاس فراوان
سلام
اگه توی هلپ متلب دستور histeq رو بررسی بفرمایید دستور زیر رو آورده که در واقع یه هیستوگرام رو به عنوان هیستوگرام هدف در نظر گرفته که همون hgram هست.


J = histeq(I, hgram)

توجه بفرماییدکه اگه hgram رو ندید خودش هیستوگرام یکنواخت رو برای این کار در نظر می گیره. البته روش های دیگه ای هم برای histogram matching وجود داره.

مهدی هادیان2
جمعه 11 اردیبهشت 1394, 12:39 عصر
بسم الله الرحمن الرحیم

سلام
اگه توی هلپ متلب دستور histeq رو بررسی بفرمایید دستور زیر رو آورده که در واقع یه هیستوگرام رو به عنوان هیستوگرام هدف در نظر گرفته که همون hgram هست.


J = histeq(I, hgram)

توجه بفرماییدکه اگه hgram رو ندید خودش هیستوگرام یکنواخت رو برای این کار در نظر می گیره. البته روش های دیگه ای هم برای histogram matching وجود داره.
با سلام
از پاسختون ممنون
بنده کد زیر رو نوشتم:

h=histeq(t1,t2)
t1 تابع اولیه و t2 تابعی است که می خوام بهش تبدیل بشه.
ولی خطای زیر رو میده.


Error using histeq
(line 115)
HGRAM must be a
vector.

مشکل از کجاست؟
با سپاس فراوان

nina222
شنبه 12 اردیبهشت 1394, 12:01 عصر
بسم الله الرحمن الرحیم

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

h=histeq(t1,t2)
t1 تابع اولیه و t2 تابعی است که می خوام بهش تبدیل بشه.
ولی خطای زیر رو میده.


Error using histeq
(line 115)
HGRAM must be a
vector.

مشکل از کجاست؟
با سپاس فراوان



t1 شما یا به عبارتی همون I باید تصویر باشه نه تابع. این هم مثال خود متلب هست. که چون هیستوگرام هدف رو نداده به طور پیش فرض از هیستوگرام یکنواخت استفاده کرده .


I = imread('tire.tif');
J = histeq(I);
imshow(I)
figure, imshow(J)

حالا شما تو خط دو باید هیستوگرام مورد نظر خودتون رو در کنار تصویر I وارد کنید.

مهدی هادیان2
شنبه 12 اردیبهشت 1394, 21:59 عصر
بسم الله الرحمن الرحیم

t1 شما یا به عبارتی همون I باید تصویر باشه نه تابع. این هم مثال خود متلب هست. که چون هیستوگرام هدف رو نداده به طور پیش فرض از هیستوگرام یکنواخت استفاده کرده .


I = imread('tire.tif');
J = histeq(I);
imshow(I)
figure, imshow(J)

حالا شما تو خط دو باید هیستوگرام مورد نظر خودتون رو در کنار تصویر I وارد کنید.
بنده یک lecture از گنزالز خوندم که تو اون مثالی از Histogram Matching زده بود که توش از تابع اول انتگرال گرفته بود و ... اصلا عکسی وجود نداشت؛ اگه بخوام اون رو پیاده سازی کنم چی کار باید کنم؟
با سپاس فراوان

مهدی هادیان2
سه شنبه 15 اردیبهشت 1394, 17:36 عصر
بسم الله الرحمن الرحیم
با سلام
دوستان مطلب زیر راجع به Histogram Matching است:
http://fourier.eng.hmc.edu/e161/lectures/contrast_transform/node3.html
برای پیاده سازی باید از تابع اولیه و اون تابعی که می خوام تابع اولیه شکل اون شه انتگرال بگیرم؛ و بعد معکوس تابع های انتگرال رو بدست بیارم و اون ها رو مساوی هم بزارم؟
یا راه بهتری وجود داره؟
با سپاس فراوان