Page 63 -
P. 63

โครงการหนังสืออิเล็กทรอนิกส์ เฉลิมพระเกียรติสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารี







                 54

                    2.3     ชนิดของขอมูลและการแปลงขอมูล



                          MATLAB  นั้นมีขอมูลหลากหลายชนิดใหเลือกใช  แตการคํานวนสวนใหญจะทํากับ
                          ขอมูลชนิด double ทําใหมีความจําเปนที่เราจะตองทําความเขาใจถึงชนิดของขอมูลที่

                          อานไดจากภาพและการแปลงไปมาระหวางขอมูลชนิดตาง  ๆ  โดยชนิดของขอมูลจะ

                          เปนตัวกําหนดจํานวนบิตที่ใชในการจัดเก็บคาขอมูลนั้น ๆ นั้นคือ จะบอกถึงคาต่ําสุด
                          และคาสูงสุดของตัวเลขแตละชนิด เชน ขอมูลชนิด uint8 จัดเก็บขอมโดยใชจํานวน

                                                                       0
                          บิต 8 บิต คาต่ําสุดที่เปนไปไดของขอมูลชนิดนี้คือ 2 =0 และคาสูงสุดของขอมูลคือ
                            8
                          2 -1 = 255 ตารางที่ 2.1 แสดงตัวอยางชนิดของขอมูลที่กําหนดไวใน MATLAB

                                           ตาราง 2.1 ตัวอยางชนิดของขอมูลใน MATLAB


                            ชนิดขอมูล     ความหมาย                            ชวงของคา

                              int
                            8              เลขจํานวนเต็ม 8 บิต                 127    –  128      -
                            8 uint         เลขจํานวนเต็ม 8 บิต ไมมีเครื่องหมาย   255      0 -

                            16 int         เลขจํานวนเต็ม 16 บิต                32767 - 32768     -

                            16 uint        เลขจํานวนเต็ม 16 บิต ไมมีเครื่องหมาย   65535      0 -

                            int32          เลขจํานวนเต็ม 32 บิต        -       2147483648-2147483647
                            uint32         เลขจํานวนเต็ม 32 บิต ไมมีเครื่องหมาย   0-     4294967295

                            double         เลขจํานวนจริง  64 บิต       2.2251       e-308-1.7977e+308

                            logical        เลขไบนารี                              0 และ 1


                          คําสั่ง imread(.) นั้นจะอานคาความเขมแสงของภาพแลวเก็บไวในตัวแปรชนิด unit8

                          เนื่องจากคาความเขมแสงของแตละจุดภาพเปนขอมูลขนาด 8 บิต หากแตการคํานวณ

                          ใน MATLAB ตองทําการคํานวณกับขอมูลชนิด double เทานั้น จึงตองทําการเปลี่ยน
                          ขอมูลภาพที่อานไดใหอยูในรูปของตัวแปร double  กอนที่จะทําการประมวลผลทาง

                          คณิตศาสตร  การแปลงชนิดของขอมูลทําไดดวยคําสั่ง double(.)  ตามตัวอยางการใช

                          งานดังนี้
   58   59   60   61   62   63   64   65   66   67   68