مشاكل مع عرض الصور التي تم تحريرها في واجهة المستخدم الرسومية تم إنشاؤها في MATLAB

StackOverflow https://stackoverflow.com/questions/768510

سؤال

لدي مهمة لإنشاء واجهة المستخدم الرسومية باستخدام دليل Matlab وأوصي مشكلة في عرض صورة تم تحريرها. أحتاج إلى الحصول على أزرار تحرير الصورة (على سبيل المثال. إزالة المكونات الحمراء والأزرق والأخضر وتدوير) وعرض الصورة التي تم تحريرها. انا استخدم imshow لعرض الصورة المحررة ولكنها تعرض في نافذة جديدة وتغلق واجهة المستخدم الرسومية التي قمت بتشغيلها. هل أستطيع مساعدتك؟

لقد كنت أعمل في ذلك وحاولت العديد من الطرق المختلفة لتحديد المشكلة ولكن لا شيء يعمل. ومع ذلك، فأنا أستخدم MATLAB 7.0.1، و 7.7.0 قد يكون لديك تحديث لهذه المشكلة.

هل كانت مفيدة؟

المحلول

عند رسم الصورة لأول مرة imshow, ، هل قمت بإرجاع مقبض لكائن الصورة، إنه يخلق:

A = (the initial matrix of image data);
hImage = imshow(A);

ثم، لتحديث الصورة مع بيانات جديدة، جرب ما يلي بدلا من الاتصال imshow تكرارا:

B = (modification of the original image matrix A);
set(hImage, 'CData', B);

باستخدام set سيغير الأمر كائن الصورة الذي قمت بإنشائه بالفعل (يمكن العثور على قائمة من خصائص كائن الصورة هنا).

بدلا من ذلك، يمكنك أيضا إضافة معلمات إضافية إلى مكالمة imshow لإخبارها بالكائن المحاور لرسم الصورة في:

hAxes = (the handle to an axes object);
imshow(A, 'Parent', hAxes);

تعديل:

معالجة مشكلتك الإضافية لمشاركة بيانات GUI بين الوظائف، يجب عليك التحقق من وثائق MATLAB هنا. وبعد كما لوحظ هناك، هناك بعض الطرق المختلفة لتمرير البيانات بين الوظائف المختلفة المشاركة في واجهة المستخدم الرسومية: وظائف التعشيش (المذكورة على ذلك هنا)، باستخدام خاصية "UserData" للكائنات (المذكورة على ذلك هنا)، أو استخدام الوظائف setappdata/getappdata أو guidata. وبعد ال guidata قد يكون الخيار أفضل لاستخدامه مع Guis Made In Installation.

نصائح أخرى

تعمل وظائف ملف GUI M تلقائيا على تعيين بيانات الصورة إلى متغير يسمى hObject. وبعد بمجرد أن تقوم بتغيير صورتك، يجب عليك إعادة تعيين البيانات الجديدة إلى hObject:

hObject = imshow(newimagedata)

لا تنس التحديث وحفظ هذه العملية عن طريق:

guidata(hObject, handles)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top