ตอนนี้ฉันกำลังจัดการกับการประมวลผลภาพใน Python ผ่าน PIL (Python Image Library) เป้าหมายหลักของฉันคือการนับจำนวนเซลล์สีในภาพอิมมูโนวิทยา ฉันรู้ว่ามีโปรแกรมห้องสมุดฟังก์ชั่นและบทแนะนำที่เกี่ยวข้องและฉันตรวจสอบเกือบทั้งหมด เป้าหมายหลักของฉันคือการเขียนโค้ดด้วยตนเองตั้งแต่เริ่มต้นให้มากที่สุด ดังนั้นฉันพยายามหลีกเลี่ยงการใช้ไลบรารีและฟังก์ชันภายนอกมากมาย ฉันเขียนโปรแกรมส่วนใหญ่แล้ว ดังนั้นนี่คือสิ่งที่เกิดขึ้นทีละขั้นตอน:
โปรแกรมใช้เวลาในไฟล์ภาพ:
และประมวลผลสำหรับเซลล์สีแดง (โดยทั่วไปแล้วจะปิดค่า RGB ต่ำกว่าเกณฑ์ที่กำหนดสำหรับสีแดง):
และสร้างแผนที่บูลีนของมัน (จะวางส่วนหนึ่งของมันเพราะมันใหญ่) ซึ่งโดยทั่วไปแล้วจะวาง 1 ทุกที่ที่มันพบกับพิกเซลสีแดงในภาพที่สองที่ประมวลผลข้างต้น
22222222222222222222222222222222222222222
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000011111100000000000000000001100002
20000000001111100000000000000000011111002
20000000000110000000000000000000011111002
20000000000000000000000000000000111111002
20000000000000000000000000000000111111102
20000000000000000000000000000001111111102
20000000000000000000000000000001111111102
20000000000000000000000000000000111111002
20000000000000000000000000000000010000002
20000000000000000000000000000000000000002
22222222222222222222222222222222222222222
ฉันตั้งใจสร้างเฟรมนั้นคล้าย ๆ กับเส้นขอบด้วย 2s เพื่อช่วยฉันในการนับจำนวนกลุ่ม 1s ในแผนที่บูลีนนั้น
คำถามของฉันสำหรับพวกคุณคือทำไมฉันจะนับจำนวนเซลล์ (กลุ่ม 1s) ได้อย่างมีประสิทธิภาพในแผนที่บูลีนแบบนั้น? ฉันพบhttp://en.wikipedia.org/wiki/Connected-component_labelingซึ่งดูมีความเกี่ยวข้องและคล้ายคลึงกันมาก แต่เท่าที่ฉันเห็นมันอยู่ในระดับพิกเซล ของฉันอยู่ในระดับบูลีน เพียง 1 และ 0
ขอบคุณมาก.