أخطاء اوكتاف في محاولة دراسة ضغط الصورة
-
12-09-2019 - |
سؤال
اسمحوا لي أن أبدأ بالقول إنني أحبك. شكرا لك.
الترتيب التالي للعمل:
octave-3.2.3:8> xin = imread('3Phone.png');
octave-3.2.3:9> colormap(gray(256));
octave-3.2.3:10> image(xin);
error: invalid value for array property "cdata"
error: set: expecting argument 2 to be a property name
error: set: expecting argument 4 to be a property name
error: set: expecting argument 6 to be a property name
error: called from:
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/image/__img__.m at line 57, column 7
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/image/image.m at line 75, column 5
error: A(I): Index exceeds matrix dimension.
error: called from:
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/plot/__go_draw_axes__.m at line 383, column 22
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/plot/__go_draw_figure__.m at line 92, column 3
error: /Applications/Octave.app/Contents/Resources/share/octave/3.2.3/m/plot/gnuplot_drawnow.m at line 91, column 5
octave-3.2.3:10>
أنا أستخدم Octave 3.2.3 على Mac OS X (سنو ليوبارد). هذه محاولة أساسية للغاية لعرض صورة تم قراءة وتخزين الذاكرة. أي مساعدة على إصلاح هذه المشكلة سيكون موضع تقدير كبير. شكرا!
المحلول
تخميني، عند قراءة ملف PNG - تأكد من أنه ملف رمادي. خلاف ذلك هناك 3 مصفوفة (RGB). لذلك لا يمكنك استخدام colormap الرمادي.
إذا كان 2phone.png صورة ملونة، فحاول (على الأقل هذا ما سأفعله في Matlab):
xin = imread('3Phone.png');
image(xin(:, :, 1);
colormap(gray(256));
هذا من شأنه أن يعرض فقط مصفوفة ص.
أو أفضل، واستخدام RGB2GRAY. (بالطبع، استخدم ما يعادل اوكتاف).
لا تنتمي إلى StackOverflow