Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   پردازش تصوير رقمي(Digital Image Processing) (http://artificial.ir/intelligence/forum100.html)
-   -   Min filter (http://artificial.ir/intelligence/thread10429.html)

mahza ۱۱-۲۴-۱۳۹۰ ۰۱:۱۰ قبل از ظهر

Min filter
 
با سلام خدمت دوستان
یه سوال داشتم. در مورد فیلتر کردن تصویر با Min Filter آیا کد زیر درسته؟

A = imread('pic.jpg');
fun = @(x) min(x( : ));
B = nlfilter(A,[3 3],fun);
البته این کد خطا می ده اما نمی دونم مشکلش چیه
ممنون میشم راهنماییم کنین

mahdiii ۱۱-۲۴-۱۳۹۰ ۰۳:۳۳ قبل از ظهر

سلام. خطایی نداره برای من. خطاش مربوط به چیه. شاید عکس رو نداری یا اگه داری تو شاخه کدت نیست.
A = imread('cameraman.tif');
fun = @(x) mean(x(:));
B = nlfilter(A,[30 30],fun);
imshow(A), figure, imshow(mat2gray(B))
این کدو اجرا کن. عکسشم تو خود شاخه متلب هستش. اگه تو help متلب nlfilter رو سرچ کنی میاره این مثالو

mahdiii ۱۱-۲۴-۱۳۹۰ ۰۳:۳۵ قبل از ظهر

اگه مشکلت اینه که عکسو درست نشون نمیده با نوشتن تابع mat2gray مشکلت حل میشه.
imshow(mat2gray(B))

mahza ۱۱-۲۴-۱۳۹۰ ۰۹:۰۵ قبل از ظهر

با اون عکس که واسه خود مطلب هست درست اجرا میشه اما با تصویری که تو فایل پروژه هست نه
>> A = imread('k.jpg');
>> fun = @(x) mean(x(:));
>> B = nlfilter(A,[30 30],fun);
??? Error using ==> plus
Matrix dimensions must agree.

Error in ==> nlfilter at 52
aa = mkconstarray(class(a), padval, size(a)+nhood-1);

mahdiii ۱۱-۲۴-۱۳۹۰ ۰۵:۱۱ بعد از ظهر

شاید مشکلت به خاطر اینه که تصویرت رنگیه. بنابراین تعداد ابعادش دچار مشکل میشه. بعد خوندن عکس تبدیلش کن به سطوح خاکستری بعد ادامه برنامه رو اجرا کن
rgb2gray(A)
یا اگه می خوای با تصویر رنگی کار کنی هر کدوم از پلینهای قرمز، سبز و آبی رو جداگانه بهش بده

mahza ۱۱-۲۴-۱۳۹۰ ۰۸:۵۶ بعد از ظهر

ممنون از راهنماییتون :)


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۴:۴۰ بعد از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.