AT76.09 Digital Image Processing in Remote Sensing using C Language Dr. HONDA Kiyoshi Associate Professor Space Technology Applications and Research Asian Institute of Technology honda@ait.ac.th 1 1. Introduction 2 1
RS Study in RS&GIS FoS 1. Remote Sensing (August ) Remote Sensing Principles Basic Processing 2. Advanced Remote Sensing ( January ) 1. Higher Processing Atmospheric Correction, Moderate Low Resolution RS Processing Multi-resolution Multi-temporal Data, Radar Remote Sensing 2. Applications: Modeling Vegetation, Soil Monitoring, Agriculture, Flood 3. Web Map Service ( Web Image Server ) : Implementation 3. Digital Image Processing in Remote Sensing( January ) 1. Higher Processing Algorithm - Spatial Filtering 2. Algorithm Implementation in C 1. C for Image Processing For Algorithm Development and Implementation 4. RS and GIS for Environmental Applications 1. Various Application combined with GIS 3 Rationale This course will provide students with more techniques in digital image processing in remote sensing adding to AT76.03 Remote Sensing. Emphasis is given on implementation of algorithms as computer programs so that students will be able to develop their own algorithms and implement them. The techniques taught in this course has broad applicability in any field which needs to handle image data. The course covers introduction to HPC, using multi-thread programming, Cluster and GPU 4 2
Why Programming? To implement own image ( or any data ) processing algorithms Free from commercial package To be able to test / implement your own idea Understanding Programming <-> developing algorithms. Basic skill as a scientist/researcher Develop tools Simple data processing / conversion Automate tedious data processing procedure 5 Goals Understand concept of Computer Understand concept of Computer Programming Write C Programs for Image Processing Develop your own new algorithms for image processing To have file I/O capability Analyze problem on digital image processing develop various tools 6 3
Scope Use only C Compiler is broadly available ( portable ) C ( not C++ ) is good enough for core algorithms Well established by ISO Processing Speed Easy to migrate to C++, FORTRAN, VB, Java, Script Used for HPC Only simple human interface ( console ) Concentrate on core algorithm part Developed C programs can be easily implemented in other environments 7 Text books C in Plain English by Brian Overland MIS:Press, ISBN 1-55828-430-3 The C Programming Language Brian W. Kernighan, Dennis M. Ritchie Computer Science A Breadth-First Approach with C by John Impagliazzo and Paul Nagin John Wiley & Sons, ISBN 0-471-58552-1 Digital Image Processing, Addison Wesley,1993 R.C. Gonzales, R. E. Wood 8 4
Course Contents 1. Introduction 2. First C 3. Basic of C 4. Control Structure 5. Array and Pointer 6. Image Handling and File I/O 7. Using Image Handling Library 8. Managing libraries 9. Image Processing Algorithm Implementation 10. Multi-Thread, GPU 11. Other interesting topics 9 Rating Examination 70% Report 30% 10 5
Byte 8 bits = 1byte Binary System Hardware Glossary CPU ( Central Processing Unit ) ALU ( Arithmetic Logic Unit ) Registers Core Processor in a CPU RAM ( Random Access Memory ) I/O Input/Output Virtual Memory 11 Computer Hardware Registers Control Unit BUS RAM Random Access Memory ALU I/O Controller Hard Disk and etc Network 12 6
Glossary ( Memory ) Memory ( Primary storage ) RAM Virtual Memory Allocate memory to applications virtually using Hard disk. Not restricted by the amount of RAM Memory ( Secondary storage ) FD Hard disk, RAID CD, DVD, MO, DLT, 8mm Tape, DAT Interface ( SCSI, IDE, SATA, USB, USB2, Firewire, Bluetooth..) SATA 1.5Gbps->7Gbps(2007) 13 Glossary ( OS ) Operating System ( OS ) Interface between Application software, Human operation, Network and Hardware Manage all of resources of the computer such as Memory, File I/O, Security, Task scheduling Single User / Multi User Single Task / Multi Task 8bit/16bit/32bit/64bits The unit data width in CPU or OS Memory Addressing 16bit -> 64KB, 32bit->4GB, 64bit - >16PB 14 7
Glossary MS-DOS Windows95 Windows NT, 2000, XP, Vista, Windows7 UNIX, LINUX 15 Glossary ( Computer Language ) Computer Language Machine Language CPU Instructions with binary data Assembly Language Symbolic codes in one-to-one correpondence with a machine language High Level Language Fortran Formula Translating System, still popular in scientific calculation C, C++ Most common in various field BASIC Windows JAVA Network environment COBOL, Pascal.. Old fashioned IDL, S, Avenue More High level language, 16 8
Low Level to High Level Language Machine Language ( Low Level ) 2463 3446 5457 Assembly Language LOAD 4,X SUBT 4,Y STORE 4,Z C ( High Level ) Z = X - Y; 17 Compiler Compile Compiler and Interpreter Translate a program source code to machine language. Create object files. Link Link object files with other object files, libraries, which is referenced from the program. Interpreter Compile at run time one line to one line 18 9
Glossary ( Network ) Network LAN & WAN : Local Area Network, Wide Area Network EtherNet: 10Mbps Fast Ether Net: 100Mbps Giga bit Ether: 1Gbps FDDI( Fiber Distributed Data Interface 100Mbps ) ATM ( Asynchronous Transmission Mode several Gbps ) HUB Concentrator for Ether Net Repeater type / Switch Type TCP/IP Transmission Control Protocol/Internet IP Address 203.159.10.13 Router/ Segment 19 Glossary ( Network ) Parallel Computing Cluster GRID GPU OpenMP MPI ThaiGRID AP-GRID 20 10