วันพฤหัสบดีที่ 20 กุมภาพันธ์ พ.ศ. 2557

Stacks, Virtual Stacks and Hyperstacks

ImageJ สามารถแสดงภาพหลายภาพในหน้าต่างเดียวกันได้ ด้วยการรวมกลุ่มภาพซ้อน ๆ กัน เอาไว้ โดยกลุ่มภาพที่ได้รวมกันนี้จะเรียกว่า Stack ภาพที่นำมาสร้าง Stack นั้นจะเรียกว่า Slice หลาย ๆ Slice รวมกันก็จะเป็น Stack นั้นเอง กลุ่ม Pixel ที่รวมกันในแบบ Stack นั้นจะเรียกว่า voxel (volumetric pixel) โดยจะรวมค่า ความสว่าง และค่าอื่น ๆ เอาไว้ด้วย

ทุก Slice ที่จะนำมาสร้าง Stack นั้นจะต้องมีขนาดที่เท่ากัน ค่า bit depth ที่เท่ากันด้วย ส่วนของ Scrollbar ที่อยู่ด้านล่างของหน้าต่าง Stack นั้นสามารถใช้เลื่อนแสดงภาพแทนปุ่ม Start ได้ หากต้องการตั้งค่าการเล่นภาพแบบเคลื่อนไหว สามารถคลิกขวาที่ปุ่ม Play หรือ Pause ได้

การกำหนดตัวกรองภาพก่อนการเปิดภาพขึ้นมาแบบ Stack มีหลายรูปแบบด้วยกัน และหากต้องการเปิดภาพแบบที่มีคุณภาพของภาพแบบไม่บีบอัดสามารถเปิดภาพได้จากเมนู File->Import->Raw  แต่หากมี Folder รูปภาพและต้องการเปิดภาพจาก Folder นั้นก็สามารถทได้ด้วยการเลือกภาพแบบเรียงลำดับตามจำนวนภาพใน Folder หรือ กำหนดเองได้ โดยใช้เมนู File->Import->Raw ก็ได้ นอกจากการนำเข้าภาพมาเป็น Stack แล้วยังสามรถเพิ่มและลดภาพได้ในภายหลังจากที่ได้เพิ่มเข้ามาในตอนแรกได้ด้วย

นี้นับว่าเป็นส่วนหนึ่งของการกำหนดให้โปรแกรมสามารถแสดงผล เพื่อให้เราสามารถวิวดูตัวอย่างภาพก่อนจะประมวลผลในขั้นตอนอื่น ๆ ต่อไปอีกได้

ขั้นตอนการเพิ่มไฟล์ เพื่อนำมาสร้างเป็น Stack สำหรับการประมวลผลภาพหมู่

หน้าต่างนี้สำหรับกำหนดจำนวนภาพใน folder  เพื่อกำหนดจำนวนภาพใน folder เพื่อเข้ามาสร้างเป็นภาพหมู่ โดยมีตัวเลือกให้ลองเลือกใช้งานอีกหลายตัวเลือก

เมือกดปุ่ม OK จากภาพด้านบน โปรแกรมก็จะสร้าง Stack ให้แต่ออาจจะมองเห็นแค่ภาพเดียว สามารถกดปุ่ม Play หรือ Scrollbar สำหรับเลื่อนดูภาพต่อไปได้

นี้เป็นตัวอย่างการจัดเรียงภาพแบบให้ทุก Slice แสดงผลอยู่ในหน้าต่างเดียวกัน

ตัวอย่างการแสดงภาพแบบ Montage....
ยังสามารถแสดงกราฟดูค่า mean ค่า Max ค่า Min ได้ด้วย มีทั้งกราฟและตัวเลข



ตัวอย่างนี้เป้นตัวอย่างการรวมทุกภาพใน Stack มาเป็นภาพเดียวกัน ด้วยความสามารถก็จะได้ที่รวมทุกภาพเข้าไว้ด้วยกันออกมาตามตัวอย่างนี้เลยครับ


Virtual Stacks

เป็นส่วนที่อยู่บนดิส ทำหน้าที่ตรงข้ามกับการทำงานของ Ram และ Virtual Stack เป็นเพียงทางเดียวที่จะโหลดภาพ แบบเป็นลำดับที่ไม่สามารถจัดเก็บลง Ram ได้ การใช้งาน Virtual Stack นั้นมีข้อกำหนดที่ควรจดจำเมื่อจำเป็นต้องใช้งาน ดังนี้

- Virtual Stack สามารถอ่านได้เพียงอย่างเดียว เพราะฉะนั้นการเปลี่ยนแปลงส่วนใดของ Slice จะไม่สามารถจัดเก็บได้ เมื่อเปลี่ยน Slice ในการทำงาน แต่สามารถใช้ Macro ช่วนในการทำงานได้ โดยไปที่เมนู Process->Batch->Virtual Stack...

- หากใช้คำสั่ง Image->Crop โปรแกรมอาจจะเกิด Out of Memory ได้ เพราะ Stack จะถูกสร้างขึ้นเรื่อย ๆ แต่ Virtual ไม่ได้ถุกสร้างตาม มีเพียงเท่าเดิม

Stack เมื่อต้องทำงานร่วมกับ Hyperstacks สามารถเรียกใช้ผ่านเมนู File->Open Sample->Mitosis ... จำนวนมิติของ Hyperstacks สามารถลดลงได้ด้วยคำสั่ง Image->Hyperstacks->Reduce Dimensionality หรือ Image . Stacks . Z Project. . . หรือ Image .Hyperstacks . Channels Tool...  ตัวอักษร (V) ที่อยู่ในหน้าต่าง จะหมายถึง Virtual image (Virtual Stack)

- ไฟล์รูปแบบ TIFF จะสามารถทำงานได้เร็วกว่า ไฟล์รูปแบบ JPEG แต่ก็สามารถแปลงจาก JPEG เป็น TIFF ได้ด้วยการ File->Save as ->Image Sequence ...


Hyperstacks

เป้นการเก็บข้อมูลภาพในหลายมิติ เป็นส่วนเพิ่มเติมจากการทำงานแบบ Stack จะมีจำนวนมิติเป็น 4D หรืแ 5D เช่น ความกว้าง (x) ความยาว (y) จำนวนแบรน (c) และค่า time frame (f) หน้าต่างของ Hyperstack จะเป็นหน้าต่างคล้ายกับ Virtual Stack เข่น Scrollbar ส่วนค่า f นั้นจะเป็นปุ่มที่อยู่กับการเล่นและหยุดของ Hyperstacks


ส่วนของการทำงานของ Hyperstacks