![]() |
Min filter
با سلام خدمت دوستان
یه سوال داشتم. در مورد فیلتر کردن تصویر با Min Filter آیا کد زیر درسته؟ A = imread('pic.jpg'); fun = @(x) min(x( : )); B = nlfilter(A,[3 3],fun); البته این کد خطا می ده اما نمی دونم مشکلش چیه ممنون میشم راهنماییم کنین |
سلام. خطایی نداره برای من. خطاش مربوط به چیه. شاید عکس رو نداری یا اگه داری تو شاخه کدت نیست.
A = imread('cameraman.tif'); fun = @(x) mean(x(:)); B = nlfilter(A,[30 30],fun); imshow(A), figure, imshow(mat2gray(B)) این کدو اجرا کن. عکسشم تو خود شاخه متلب هستش. اگه تو help متلب nlfilter رو سرچ کنی میاره این مثالو |
اگه مشکلت اینه که عکسو درست نشون نمیده با نوشتن تابع mat2gray مشکلت حل میشه.
imshow(mat2gray(B)) |
با اون عکس که واسه خود مطلب هست درست اجرا میشه اما با تصویری که تو فایل پروژه هست نه
>> 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); |
شاید مشکلت به خاطر اینه که تصویرت رنگیه. بنابراین تعداد ابعادش دچار مشکل میشه. بعد خوندن عکس تبدیلش کن به سطوح خاکستری بعد ادامه برنامه رو اجرا کن
rgb2gray(A) یا اگه می خوای با تصویر رنگی کار کنی هر کدوم از پلینهای قرمز، سبز و آبی رو جداگانه بهش بده |
ممنون از راهنماییتون :)
|
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۵:۱۱ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.