วันเสาร์ที่ 14 กุมภาพันธ์ พ.ศ. 2558

ImageJ User Interface

หน้าจอการทำงานของโปรแกรม ImageJ นั้นไม่เหมือนกับโปรแกรม Image Processing อื่น ๆ เนื่องจากโปรแกรมเป็นลักษรณะของหน้าต่างที่แยกกัน สามารถจัดวางตำแหน่ง ต่าง ๆ ด้ทั่วของจอภาพ และมีชุดคำสั่งบนหน้าต่างเดียวกัน ซึง่ประกอบด้วย ส่วนของเมนู status bar และ progress bar ดังภาพประกบด้านล่าง




1. เครื่องมือการเลือกแบบสี่เหลี่ยม
2. เครื่องมือการเลือกแบบวงรี วงกลม
3. เครื่องมือการเลือกแบบหลายเหลี่ยม
4. เครื่องมือการเลือกแบบเส้นวาดอิสระ
5. เครื่องมือการเลือกแบบเส้นตรง เส้นวาด และลูกศร
6. เครื่องมือมุม
7. จุด และ หลายจุด
8. เครื่องมือการเลือกแบบอัตโนมัติ
9. เครื่องมือข้อความ
10. การขยาย
11. แถบเลื่น
12. สี
13. เมนูเพิ่มเติม
A-H เป็นเมนูแล้วต่เครื่องที่มีการติดตั้งเอาไว้อาจจะมากหรือน้อยขึ้นอยู่กับการติดตั้ง


Toolbar 
การใช้งานเครื่องมือของ ImageJ มีหลักการที่ต้องรู้จักดังนี้

1. เครื่องมือที่มีูปลูกศรเล็ก ๆ ร่วมอยู่ด้วย แสดงว่ามีเมนูหลายตัวที่ซ่อนอยู่ภายใต้เมนูเดียวกัน สามารถเลือกเมนูอื่น ๆ ด้วยการคลิกขวาที่เมนูนั้น แล้วจะแสดงรายละเอียดของเมนูย่อยที่สามารถเลือกได้แสดงขึ้นมา ดังภาพด้นาล่าง 








2. ทุก ๆ เครื่องมือ สามารถตั้งค่าการใช้งานได้หรือการเรียนกหน้าต่าง Option ขึ้นมาตั้งค่าในการใช้งานเพื่ใอห้เป็นไปตามรูปแบบที่เราต้องการใช้งานมากที่สุด ด้วยการคลิก 2 ครั้งที่เครื่องมือนั้น ดังภาพตัวอย่างด้านล่าง จากตัวอย่งเป็นภาพการตั้งค่าของเครื่องมือ Wand Tool


การรัน ImageJ ด้วย Command Line

"file-name" เปิดไฟล์ยกตัวอย่างเช่น:
        blobs.tif
        /Users/wayne/images/blobs.tif
        e81*.tif

-ijpath เปิด imagej พร้อมระบุที่เก็บ plugins:
        -ijpath /Applications/ImageJ

-port เปิด imageJ พร้อมระบุ instant:
        -port1 (use default port address + 1)
        -port2 (use default port address + 2)
        -port0 (do not check for another instance (OtherInstance)

-macro พร้อมระบุเส้นทางของ macro:
        -macro analyze.ijm
        -macro analyze /Users/wayne/images/stack1

-batch เปิดแบบไม่มีหน้าตาโปรแกรม (GUI)

-eval "macro code"     เปิดพร้อมเรียกใช้ Macro ที่ระบุ
                         -eval "print('Hello, world');"
                         -eval "return getVersion();"

-run รันเฉพาะคำสั่งในโปรแกรม ImageJ
                         -run "About ImageJ..."


-debug รันโปรแกรมใน debug mode.

Plugins with ImageJ

Plugins

Plugins เป็นรูปแบบการใช้งานที่มีประสิทธิภาพมากกว่า Macro และ Script โดยส่วนมากแล้ว plugins จะมีการสร้างชุดของเมนูเอาไว้ที่หน้าต่างหลักของโปรแกรม ImageJ

ข้อดีและข้อด้อยของ Javascript ใน ImageJ เปรียบเทียบความแตกต่างระหว่าง javascript ที่มีให้บริการของ Fiji webpage.

ข้อดี
1. สามารถเข้าถึง ImageJ และ Java APIs
2. มีความเป็นมาตรฐาน
3. ความสามาถของ Richer language

ข้อเสีย
1. ทำงานได้ช้า
2. มีความแตกต่งจาก macro
3. ไม่สามารถใช้งาน ฟังชั่นมากกว่า 360+ ของมาโครได้
3. ต้องความซับซ้อนกว่า ImageJ และ การเขียนโปรแกรมด้วยภาษา Java
4. ไม่สนับสนุนการทำงานแบบ Batch mode
5. ไม่สามารถสร้างเมนูได้ในตัวโปรแกรม ImageJ ได้
6. ไม่สามารถทำงานร่วมกับ Function Finder ในหน้าต่าง macro Editor ได้
7. ไม่มี debugger ซึ่งช่วยในการหาข้อผิดพลาดในการเขียนโปรแกรม

plugins เขียนได้ภาษา Java classes และสามารถใช้ความสามารถอย่างเต็มรูปแบบของภาษาจาวาได้ และสามารถเข้าถึงคำสั่งของ Java API ได้ทั้งหมด และสามารถใช้คำสั่งมาตรฐานและ third-party ของ java API ได้

โดยทั่วไปแล้วมักจะใช้ plugins ในการเขียนคำสั่งเพื่อวิเคราะห์ภาพ หรือ เกี่ยวกับ I/O plugins ในการอ่านและเขียนไฟล์ นอกจากนั้นยังสามารถ rendering graphic หรือ การสร้างส่วนเพิ่มเติมให้กับหน้าตาโปรแกรม ImageJ ได้ด้วย

Plugins ในไดเรกทอรี่ ImageJ/plugins ในโฟลเดอร์นี้จะเป็นแสดงผ่านโปรแกรมได้จากเมนู Plugins->menu ในโฟลเดอร์นี้จะต้องเก็บไฟล์ที่เป็น .jar หรือ .class เท่านั้น

ข้อมูลเกี่ยวกับการพัฒนา ImageJ Plugins

1. Developer Resources Page on the ImageJ website (Help . Dev. Resources. . . ):
http://imagej.nih.gov/ij/developer/index.html
2. Dedicated tutorials on Fiji’s webpage:
http://fiji.sc/wiki/index.php/Introduction_into_Developing_Plugins
3. Dedicated tutorials on the ImageJ Documentation Portal:
http://imagejdocu.tudor.lu/
4. Dedicated tutorials on the ImageJDev webpage:
http://developer.imagej.net/ides

Javascript with ImageJ

Java Scripts with ImageJ

จาวาสคริปได้เริ่มนำมาใช้กับ ImageJ ในเวอร์ชั่น 1.41 เพื่อสนับสนุนให้ ImageJ สามารถใช้ API ของ Java ได้อย่างรูปแบบและ ImageJ ได้ใช้ บราวเซอร์ Mozilla Rhino ในการรันคำสั่งร่วมกับจาวา 1.6 สำหรับ Linux และ Windows ในการรัน javascript ผู้ใช้งานเครื่อง Mac และผู้ใช้งานจาวาที่ต่ำกว่านี้สามารถดาวโหลดไฟลื JavaScript.jar เข้าไปเก็บไว้ที่ Folder plugins โดยไฟล์นี้สามารถดาวโหลดได้จากเว็บไซต์อของ ImageJ  (รวมเวอร์ชั่นของ Mac ไว้ด้วย) ในไดเรกทอรี่ ImageJ/plugins/jars

ตัวอย่าง โปรแกรม javascript สามารถหาได้จาก http://imagej.nih.gov/ij/macros/js/ คำสั่งสามารถเปิดได้กับหน้าต่างของ Macro Editor สคริปจะมีนามสกุลของไฟล์เป็น .js และสามารถทำงานได้วยคำสั่ง macros->Run Macro หรือ Macros-.Evaluate Javascript (Ctrol+J) ก็ได้

Javascript Programming

1. The ImageJ web site, with growing documentation:
http://imagej.nih.gov/ij/developer/javascript.html

2. Tutorials on the Fiji webpage:
http://fiji.sc/wiki/index.php/Javascript_Scripting

3. Online scripts repository:
http://imagej.nih.gov/ij/macros/js/

Macro with ImageJ

มาโครเป็นโปรแกรมที่ง่าย และทำงานตามลำดับคำสั่ง สามารถบันทึกการใช้งานด้วยคำสั่งบันทึกของ Macro จาก เมนู Recorder (Plugins->Macros->Record...)

การบันทึก Macro จะบันทึกเป็นไฟล์ .txt หรือ .ijm หลังจากติดตั้งแล้วสามารถเรียกใช้งานได้จากเมนู Plugins->Macros->submenu หรือกำหนดค่าผ่าน Keyboard ก็ได้ นอกจากนี้ทุก ๆ Macro จะบันทึกไว้ที่ไดเรกทอรี่ ImageJ/plugins ด้วยไฟล์นามสกุล .ijm

ในเว็บไซต์ของ ImageJ มีมาโครให้ใช้งานมากกว่า 300 กว่ามาโคร  หากต้องการลองใช้งานสามารถเปิดบราวเซอร์และลากมาโดยตรงที่หน้าต่างหลักของโปรแกรม ImageJ หรือ ตัดลอกไว้ที่ clipboard (Ctrl+A, Ctrl+C) กลับมาที่โปรแกรม ImageJ (IJ) และรันด้วยคำสั่ง File->New->System Clipboard [V] (Ctrl+Shift+V) ในการวางคำสั่งไว้ที่หน้าต่าง macro editor รันมาโครใช้คำสั่ง Macros->Run Macro หรือคำสั่ง Ctrl+R มาโครจำนวนมากจะถูกเก็บไว้สำหรับเรียกใช้งานที่โฟลเดอร์ ภายใต้ folder ImageJ

Macro Programming
ชุมชนในการสร้าง คู่มือของมาโครที่ดีนั้น มีหลายที่สามารถแนะนำได้ดังนี้

1. The ImageJ Macro language --- Programmer's Reference Guide by Jerome Mutterer and Wayne Rasband
http://imagej.nih.gov/ij/docs/macro_reference_guide.pdf

2. The Built-in Macro Functions webpage (Help->Macro Functions... and Macros->Function Finder...[F] ในหน้าต่าง Editor)
http://imagej.nih.gov/ij/developer/macro/functions.html

3. Tutorial on the Fiji webpage
http://fiji.sc/wiki/index.php/Introduction_into_Macro_Programming

4. How-tos and tutorials on the ImageJ Documentation Portal
http://imagejdocu.tudor.lu/

วันพุธที่ 11 กุมภาพันธ์ พ.ศ. 2558

Extension with ImageJ

เครื่องมือช่วยสนับสนุนการทำให้ของ ImageJ อีกแบบจะอยู่ในรูปแบบของคำสั่ง และโหลดเข้าไปใน ImageJ เพื่อให้สามารถมีคำสั่งที่ช่วยเหลือในการทำงานมากยิ่งขึ้น ซึ่งบางทีเรียกว่า macros, script หรือ plugin นอกจากนี้ ยังมีบริการทางเว็บของ ImageJ กว่า 300 macros, 500 plugin และ กว่า 20 script โดยเครื่องมือสนับสนุนการทำงานของ ImageJ นั้นสามารถอธิบายคร่าว ๆ ได้ดังนี้

Macros - เป็นวิธีการค่อนข้างง่ายในการเรียกใงาน เป็นการเขียนสคริปคล้ายกับภาษาจาวา (Java) ครั้งโครงสร้างและการเขียนที่คล้ายกัน เมื่อเขียนฟังก์ชันก็สามารถเรียนกใช้ฟังก์ด้วยกันได้ด้วย Macros สามารถบันทึกไฟล์ในแบบ .txt และ .ijm

Plugins - เป็นชุดคำสั่งที่มีประสิทธิภาพ ยืดหยุ่น และเร็วกว่า Macros โดยส่วนมากแล้ว Plugins จะแสดงเป็นเมนูของ ImageJ แต่ยากในการเขียนและการดีบักตรวจสอบความผิดพลาด เขียนด้วยภาษา Java บันทึกไฟล์ในรูปแบบ .java และคอมไพล์เป็น .class

Scripts - ImaeJ ใช้ Mozilla Rhino เป็น interpreter ในการรัน javascript การทำงานคล้ายกับ plugin สคลิปนี้สามารถเข้้าถึงคำสั่ง API ของ ImageJ และ Java ได้แต่ไม่ต้องคอมไพล์ แต่สคลิปมีความยากกกว่า Macros และนำมาใช้น้อยกับ ImageJ

วันเสาร์ที่ 7 กุมภาพันธ์ พ.ศ. 2558

Settings and Preferences with ImageJ

ไฟล์สำหรับเก็บการตั้งค่าของโปรแกรม ImageJ นั้นจะบันทึกไว้ที่ไฟล์ชื่อ IJ_prefs.txt โดยมีตำแหน่งการเก็บไฟล์ไที่

1. Mac OS X = ประมาณ /Library/Preferences
2. Linux และ Windows = ประมาณไดเรกทอรี่ Home

ไฟล์นี้จะเก็บการตั้งค่า macros และ plugins ต่าง ๆ หากต้องการลบค่าการตั้งค่าที่ได้ตั้งค่าเอาไว้ เนื่องจาก ImageJ จะทำการบันทึกการตั้งเองอัตโนมัติ และสามารถเริ่มการทำงานกับค่า Default ได้จากเมนู Edit->Options->Reset

บางครั้งอาจจะทำการสืบทอดจากไฟล์ที่ได้ตั้งค่าเอาไว้ก่อนก็ได้ (Override) ก็ได้ ตัวอย่างการตั้งค่า เช่น
1. ตั้งค่า TIFF tag values ได้ที่เมนู Debug Mode ใน Edit->Options->Misc...
2. ตั้งค่า Bicubic interpolation ได้ที่เมนู Edit->Selection->Straighten...
3. การตั้งชือคอลัมน์ของตาราง Results Table ใน Display Label ใน Analyze->Set Measrements
4. ตั้งค่า Threshold ด้วย Limit to Threshold ใน Analyze->Set Measurements...
5. ตั้งค่าเกี่ยวกับ Binary ที่ Limit to Threshold ใน Analyze->Set Measurements...
6. ตั้งค่า Background color เปนสีดำ และ Foreground color เปนสีขาว ที่ Black back-ground ใน Process->Binary->Options
7. กำหนดขนาดของ ImageJ plots ได้ที่ Edit->Options->Profile Plot Options...
8. เปิด B&C widget ในตำแหน่งที่บันทึกบนหน้าจอล่าสุดได้จาก Image->Adjust->Brightness/Contrast...

และอีกหลาย ๆ ค่าสามารถเลอกทดลองปรับแต่งได้จากเมนูต่าง ๆ หากผิดพลาดในการปรับแต่งค่าก็สามารถทำการ Reset และเริ่มตั้งค่าใหมได้