سؤال

أريد استخدام ImageJ للقيام ببعض معالجة عدة آلاف من الصور.

هل هناك طريقة لاتخاذ أي مكون إضافي لـ ImageJ وتطبيقه على مئات الصور تلقائيًا؟

على سبيل المثال ، قل أنني أريد أن ألتقط صوري الألف وتطبيق التحول القطبي على كل ---

يمكن العثور على مكون إضافي للتحول القطبي لـ ImageJ هنا:

http://rsbweb.nih.gov/ij/plugins/polar-transformer.html

رائعة! دعونا نستخدمه. من:

http://albert.rierol.net/imagej_programming_tutorials.html#how٪20to٪20automate٪20an٪20Imagej٪20Dialog

أجد أنه يمكنني تطبيق مكون إضافي باستخدام ما يلي:

(defn x-polar 
  [imageP]
  (let [thread (Thread/currentThread)
        options ""]
    (.setName thread "Run$_polar-transform")
    (Macro/setOptions thread options)
    (IJ/runPlugIn imageP "Polar_Transformer" "")))

هذا أمر جيد لأنه يقمع الحوار الذي سيظهر على كل صورة. لكن تشغيل هذا دائمًا يظهر نافذة تحتوي على الصورة المحولة ، عندما يكون ما أريده هو ببساطة إرجاع الصورة المحولة.

أغبى طريقة للقيام بما أريد فقط هي إغلاق النافذة التي تظهر وإرجاع الصورة التي كانت تعرضها.

هل ما أريده ولكنه متخلف تمامًا:

(defn x-polar 
  [imageP]
  (let [thread (Thread/currentThread)
        options ""]
    (.setName thread "Run$_polar-transform")
    (Macro/setOptions thread options)
    (IJ/runPlugIn imageP "Polar_Transformer" "")
    (let [return-image (IJ/getImage)]
      (.hide return-image)
      return-image)))

من الواضح أنني أفتقد شيئًا حول كيفية استخدام مكونات ImageJ في سياق البرمجة. هل يعرف أحد الطريقة الصحيحة للقيام بذلك؟

شكرا ، -روبرت ماكنتاير

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

المحلول

لسوء الحظ ، من الشائع جدًا أن تتم كتابة مكونات ImageJ دون استخدام برنامجي في الاعتبار ، وليس هناك طريقة أنيقة للتغلب على ذلك دون تغيير رمز البرنامج المساعد. (لقد اكتشفت بالفعل أن هناك طرقًا غير مرضية من حوله :)) لذا ، في وضعك ، أود فقط تغيير الكود في Polar_Transformer.java بالطريقة الآتية:

http://gist.github.com/452826

... وهو غامض على طول الخطوط المقترحة في إرشادات تصميم البرنامج المساعد Fiji, ، بينما لا تزال تحاول إجراء تغييرات الحد الأدنى على الكود الأصلي. ثم يمكنك فقط إنشاء كائن البرنامج المساعد والاتصال exec(...) عليها توفير الخيارات التي تريدها. (لم أختبر هذا التصحيح حقًا ، لكنك تحصل على الفكرة.)

آمل أن يكون ذلك من بعض المساعدة - أرى أن سؤالك كان منذ بعض الوقت ، لذلك ، أعتقد أنك ربما تكون قد وجدت بعض الحلول الأخرى في الوقت نفسه.

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