Muutke küpsiste eelistusi

Developing Imaging Applications with XIElib [Multiple-component retail product]

  • Formaat: Multiple-component retail product, 640 pages, kõrgus x laius x paksus: 235x180x47 mm, kaal: 1360 g, Contains 1 Paperback / softback and 1 CD-ROM
  • Ilmumisaeg: 17-Apr-1998
  • Kirjastus: Prentice Hall
  • ISBN-10: 0134429141
  • ISBN-13: 9780134429144
  • Multiple-component retail product
  • Hind: 65,71 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Multiple-component retail product, 640 pages, kõrgus x laius x paksus: 235x180x47 mm, kaal: 1360 g, Contains 1 Paperback / softback and 1 CD-ROM
  • Ilmumisaeg: 17-Apr-1998
  • Kirjastus: Prentice Hall
  • ISBN-10: 0134429141
  • ISBN-13: 9780134429144
44291-3 Leverage the power of XIE image processing in your X Windows applications! The XIE extension to X Windows enables developers to quickly create robust, highly-efficient image display and enhancement software. Developing Imaging Applications with XIElib is the first book to deliver practical answers, hands-on guidance, strategies and XIElib sample code for solving real image processing problems. The book starts with an overview of image processing for developers new to the field. Next, it introduces XIElib and the problems it is intended to solve. The book covers all critical aspects of XIElib development, including: *Working with photoflos and resources *New high-level routines that simplify I/O *Importing and exporting images in multiple graphics formats *Managing process elements *XIElib event and error handling *Making sure that image data is compatible with the colormap and visual of a window You'll find never-before-published guidance on essential XIElib techniques such as dithering, colorspaces, geometry, and image encoding and decoding-with especially detailed coverage of JPEG.Several complete sample clients are provided in the book and on CD-ROM, both to illustrate XIElib client writing and provide a starting point for your own applications. XIE represents a breakthrough in image processing, but practical developer's information about it has been scarce-until now. Developing Imaging Applications with XIElib gives you the information, tools and sample code you need to create XIElib visual applications more powerful than you ever imagined.
Preface xiii
Book Organization xiv(1)
Source Code CD xv(1)
Acknowledgments xv
Chapter
1. An Introduction to Digital Image Processing
1(17)
Components of an Image Processing System
6(8)
Image Acquisition
7(1)
Image Enhancement
7(1)
Image Display
8(1)
Image Analysis
9(1)
Image Storage and Retrieval
9(3)
Image Compression
12(2)
Image Processing Applications
14(4)
Space Exploration
14(1)
Digital Photography
14(2)
Biomedical and Medical Imaging
16(1)
Document Imaging
16(1)
Criminal Justice Law Enforcement
17(1)
Machine Vision
17(1)
Chapter
2. Displaying Images with Xlib
18(34)
Images in Xlib
18(2)
Creating Images in Xlib
20(3)
Image Manipulation
23(1)
Displaying Images
24(5)
Getting the Colors Right
25(4)
Retrieving Image Data
29(1)
Subimages
30(1)
Image Destruction
31(1)
Median Filtering Images Using Xlib
32(15)
Dealing with Image Files
32(7)
Dealing with Colormaps
39(2)
Median Filters
41(1)
Example Source Code
41(6)
Problems with an Xlib Approach to Image Processing
47(3)
Handling of Image Formats
48(1)
Image Transmission
48(1)
Interactive Imaging
49(1)
Abstraction
49(1)
Display Compatibility and Accuracy
50(1)
Summary
50(2)
Chapter
3. XIE Architecture
52(23)
Goals of XIE
52(4)
Display Any Image on Any X Display
53(1)
Offload Client Processing Requirements to the Server
54(1)
Provide Simple Image Manipulation and Enhancement Primitives
55(1)
Extensibility
56(1)
XIE Architectural Overview
56(5)
Photoflos
57(1)
Techniques
58(1)
Resources
58(1)
The XIE Computational Model
59(1)
Service Classes
60(1)
A Taste of XIElib
61(12)
What the Skeleton Application Does
61(1)
Initialization of XIE
62(2)
Photoflo Creation and Initialization
64(2)
Photoflo Execution
66(1)
Image Data Transmission
67(2)
Photoflo Graph Deallocation
69(1)
Compiling and Executing the Sample
69(2)
Problems with the First Sample
71(2)
Summary
73(2)
Chapter
4. Photoflos, Photospaces, and Resources
75(76)
Photoflos
75(6)
Photoflo Architecture
77(4)
Photoflo Types
81(1)
Name Spaces
81(2)
Using Photospaces
82(1)
Allocating and Populating Photoflo Graphs in XIElib
83(6)
Allocating the Photoflo
83(1)
Specifying the Photoflo Graph Elements
84(5)
Transmitting the Photoflo to the Server and Executing It
89(2)
Immediate Photoflos
89(1)
Stored Photoflos
90(1)
Releasing Memory and Resources
91(2)
Destroying Photoflo Graphs
91(1)
Freeing Technique Parameters
92(1)
Freeing PasteUp Tiles
92(1)
Freeing the Photoflo Graph
92(1)
Freeing Stored Photoflos
93(1)
Functions That Operate on Stored Photoflos
93(46)
Modifying a Photoflo with XieModifyPhotoflo
93(5)
Redefining a Photoflo with XieRedefinePhotoflo
98(4)
Awaiting Photoflo Termination Using XieAwait
102(2)
Aborting a Photoflo Using XieAbort
104(1)
Querying the Photoflo State Using XieQueryPhotoflo
105(2)
Sending Client Data to a Photoflo with XiePutClientData
107(8)
Retrieving Client Data from a Photoflo with XieGetClientData
115(24)
Resources
139(9)
ColorLists
139(1)
LUTs
139(1)
ROIs
140(1)
Photomaps
140(2)
Resource Lifetime
142(1)
Structure of LUT, Photomap, and ROI Resources
143(1)
XIElib Resource API
144(4)
Summary
148(3)
Chapter
5. Import Elements
151(35)
Import Elements That Read Data from a Client
152(16)
Reading Client Image Data Using ImportClientPhoto
153(9)
Reading Client ROI Data Using ImportClientROI
162(4)
Reading Client LUT Data Using ImportClientLUT
166(2)
Import Elements That Read Data from an XIE Resource
168(16)
Importing XIE ROI Resources Using XieFloImportROI
169(1)
Importing XIE LUT Resources Using XieFloImportLUT
170(2)
Importing XIE Photomap Resources Using XieFloImportPhotomap
172(1)
Reading Bitonal Images and Control Planes from Drawables with ImportDrawable Plane
173(6)
Reading Image Data from Drawables with ImportDrawable
179(5)
Summary
184(2)
Chapter
6. Image Encodings and File Formats
186(19)
Introduction
186(1)
Image Encodings and File Formats
187(17)
Image Encodings
188(1)
Image File Formats
188(1)
Storing CCITT Encoded Images in TIFF Format Files
189(5)
Reading and Writing Bitonal TIFF Files: an Example
194(10)
Summary
204(1)
Chapter
7. Export Elements
205(35)
Introduction
205(1)
Displaying Image Data in a Drawable With ExportDrawable
206(8)
Conversion of Intensity Values to Colormap Indices
207(1)
Image and Drawable Dimensions
208(1)
Image and Drawable Depths
209(1)
GC Attributes
209(1)
Experimenting with GC Attributes
210(4)
Errors and Events Associated with ExportDrawable
214(1)
Displaying Bitonal Image Data in a Drawable with ExportDrawablePlane
214(7)
ExportDrawablePlane and GCs
215(5)
Errors and Events Associated with ExportDrawablePlane
220(1)
Export Elements that Write Data to an XIE Resource
221(7)
Exporting XIE ROI Resources Using XieFloExportROI
221(2)
Exporting XIE LUT Resources Using XieFloExportLUT
223(3)
Exporting XIE Photomap Resources Using XieFloExportPhotomap
226(2)
Export Elements that Write Data to a Client
228(10)
ExportAvailable
229(1)
Sending Image Data to a Client with ExportClientPhoto
230(2)
Sending ROI Data to a Client Using ExportClientROI
232(1)
Sending LUT Data to a Client Using ExportClientLUT
233(2)
Sending Client Histogram Data Using ExportClient Histogram
235(3)
Summary
238(2)
Chapter
8. Process Elements
240(22)
Overview
240(6)
Constrained and Unconstrained Image Data
242(2)
Process Domains
244(2)
Band Masks
246(1)
Elements that Perform Algebraic Processing of Image Data
246(14)
Performing Arithmetic Image Manipulation with Arithmetic
247(5)
Combining Two Image Sources Using Blend
252(3)
Generating Bitonal Images with Compare
255(2)
Using the Logical Process Element
257(2)
Applying a Mathematical Operation to Image Pixels with the Math Element
259(1)
Summary
260(2)
Chapter
9. Process Elements that Perform Format Conversions
262(35)
Creating a TripleBand Image from Three SingleBand Image Sources with BandCombine
264(2)
Errors and Events Associated with BandCombine
265(1)
Creating a SingleBand Image from a TripleBand Image Source with BandExtract
266(2)
Errors and Events Associated with BandExtract
267(1)
Extracting a Selected Band of TripleBand Data Using BandSelect
268(9)
Errors and Events Associated with BandSelect
269(1)
Examples of BandExtract and BandSelect
269(8)
Using Unconstrain to Change the Type Attribute of an Image to Unconstrained
277(2)
Errors and Events Associated with Unconstrain
279(1)
Changing the Number of Levels in an Image with the Constrain Element
279(3)
xieValConstrainClipScale
280(1)
xieValConstrainHardClip
281(1)
Errors and Events Associated with Constrain
282(1)
Creating Image Data from Colormap Index Data with the ConvertFromIndex Element
282(4)
Errors and Events Associated with ConvertFromIndex
285(1)
Converting TripleBand RGB Data to an Alternate Colorspace with ConvertFromRGB
286(1)
Errors and Events Associated with ConvertFromRGB
287(1)
Converting Image Data to Colormap Index Data with ConvertToIndex
287(3)
Errors and Events Associated with ConvertToIndex
289(1)
Converting Non-RGB Colorspace TripleBand Image Data to RGB with ConvertToRGB
290(2)
Errors and Events Associated with ConvertToRGB
292(1)
Reducing the Levels of an Image Using Dither
292(3)
Errors and Events Associated with Dither
295(1)
Summary
295(2)
Chapter
10. Enhancing Images with Point, MatchHistogram, and Convolve
297(37)
Introduction
297(6)
Implementing Enhancements not Supported by XIE
303(2)
Using the Convolve Element
305(4)
Errors and Events Associated with Convolve
308(1)
Performing Histogram Equalization with MatchHistogram
309(7)
Implementation of MatchHistogram
314(1)
Using MatchHistogram with TripleBand Image Data
315(1)
Errors and Events Associated with MatchHistogram
316(1)
Using the Point Element
316(16)
Use of Point
319(2)
False Coloring with Point
321(11)
Errors and Events Associated with Point
332(1)
Summary
332(2)
Chapter
11. Geometry and PasteUp Process Elements
334(30)
Introduction
334(1)
Performing Geometric Transformations on Image Data with Geometry
335(16)
Simplifying Geometry
341(3)
Computing Geometry Coefficients
344(1)
Geometry Sample Clients
345(6)
Errors and Events Associated with Geometry
351(1)
Using the PasteUp Element
351(12)
Using PasteUp to Display Thumbnails
352(10)
Errors and Events Associated with PasteUp
362(1)
Summary
363(1)
Chapter
12. XIE Errors and Events
364(53)
Introduction
364(1)
Events in Xlib
364(6)
Soliciting Events
365(1)
Receiving and Processing Events
366(4)
Handling Events in Xt (Widget) Applications
370(5)
Callback Resources
372(1)
Translations and Actions
373(1)
Xt Event Handlers
374(1)
Errors and Events in XIE
375(1)
Errors and Event Codes
375(1)
Soliciting and Handling Events
376(4)
Overview of XIE Events
380(15)
Color Alloc Events
383(1)
Decode Notify Events
384(2)
Export Available Events
386(4)
Import Obscured Events
390(3)
Photoflo Done Events
393(2)
Overview of XIE Errors
395(21)
Handling Errors in Xlib
397(1)
Handling Errors in XIElib
398(13)
Implementing a Callback-based Approach to Handling XIE Error Events
411(5)
Summary
416(1)
Chapter
13. Techniques
417(13)
Introduction
417(1)
Standard Techniques
418(1)
Private Techniques
418(2)
Technique Numbers and Names
420(1)
Default Techniques
420(1)
Technique Parameters
421(1)
Technique Groups
421(1)
Using the QueryTechniques Protocol
421(8)
Using XieQuery Techniques
424(5)
Summary
429(1)
Chapter
14. Color Allocation, Constrain, Convolution Edge, MatchHistogram, and Dither Techniques
430(48)
Color Allocation Techniques
430(11)
Image Data and Colormaps
430(1)
Pre-Allocating Cells in a Private Colormap
430(1)
Default Colormap Allocation
431(1)
XIE Colormap Allocation Technique Details
432(9)
Constrain Techniques
441(10)
ConstrainHardClip
441(2)
ConstrainClipScale
443(8)
Convolution Edge Techniques
451(4)
Using the ConvolveConstant Convolution Edge Technique
454(1)
Using the ConvolveReplicate Convolution Edge Technique
455(1)
MatchHistogram Techniques
455(16)
Flat
456(1)
Gaussian
456(10)
Hyperbolic
466(5)
Dither Techniques
471(5)
Ordered Dither
471(1)
Error Diffusion
471(1)
Using the XIE 5.0 Dither Techniques
472(4)
Summary
476(2)
Chapter
15. Colorspace Conversion and Gamut Compression Techniques
478(34)
Why Alternate Colorspaces?
478(2)
Colorspace Conversions
480(1)
RGB Color Specification
480(2)
HSV Colorspaces
482(1)
XIE Colorspaces
483(12)
CIEXYZ
483(8)
CIEL (*)a(*)b(*)
491(1)
YCC
492(1)
YCbCr
493(2)
Comments Regarding Colorspaces and XIE
495(1)
ConvertFromRGB Techniques
496(5)
Using the RGBToCIELab and RGBToCIEXYZ ConvertFromRGB Techniques
496(2)
Using the RGBToYCbCr ConvertFromRGB Technique
498(1)
Using the RGBToYCC ConvertFromRGB Technique
499(2)
ConvertToRGB Techniques
501(5)
Using the CIELabToRGB and CIEXYZToRGB ConvertToRGB Techniques
501(2)
Using the YCbCrToRGB ConvertToRGB Technique
503(1)
Using the YCCToRGB ConvertToRGB Technique
504(2)
Gamut Compression Techniques
506(1)
White Point Adjustment Techniques
507(2)
Using the WhiteAdjustNone WhiteAdjust Technique
508(1)
Using the WhiteAdjustCIELAbShift WhiteAdjust Technique
508(1)
Summary
509(3)
Chapter
16. Image Encode and Decode Techniques
512(36)
Introduction
512(1)
A Simple Image Encoding Scheme
513(2)
XIE 5.0 Encode and Decode Techniques
515(1)
UncompressedSingle and UncompressedTriple Encodings
516(9)
Examples
517(1)
Computing the Width of Scanlines
518(1)
Funny Pixels
518(2)
Image File Formats that Encode Data as UncompressedSingle or UncompressedTriple
520(1)
UncompressedSingle and UncompressedTriple Encode and Decode Techniques
520(5)
Bitonal Encode Decode Techniques
525(19)
Encoded Order
526(1)
Normal
526(1)
Photometric (Radiometric) Interpretation
527(1)
TIFF-2
528(4)
TIFF PackBits
532(3)
CCITT Bitonal Image Encodings
535(9)
Server Choice Encode Technique
544(1)
Summary
545(3)
Chapter
17. Encoding and Decoding JPEG Baseline
548(26)
Introduction
548(6)
Storage of JPEG Data
554(1)
JPEG Baseline Algorithm
555(2)
Colorspace Conversion
555(1)
Downsample the Chrominance Bands in TripleBand Image Data (Optional)
556(1)
Perform a Discrete Cosine Transform (DCT)
556(1)
Encode the DCT Image Data Prior to Storage
556(1)
Specifying Q Factors
557(11)
Using the JPEG Baseline Decode Technique
568(2)
Using the JPEG Baseline Encode Technique
570(2)
Summary
572(2)
Chapter
18. Geometry Techniques
574(18)
Sampling
574(11)
Nearest Neighbor
578(1)
Bilinear Interpolation
579(1)
Antialiasing Geometry Techniques
580(2)
Gaussian
582(3)
Using the XIE Geometry Sampling Techniques
585(5)
Using the BilinearInterpolation Sampling Technique
585(1)
Using the NearestNeighbor Sampling Technique
586(1)
Using the Antialias Sampling Technique
586(1)
Using the AntialiasByArea Sampling Technique
587(1)
Using the AntialiasByLowpass Sampling Technique
587(1)
Using the Gaussian Sampling Technique
588(2)
Summary
590(2)
Chapter
19. Photoflo Backend Processing
592(44)
Introduction
592(1)
Visuals, Depths, and Colormaps
593(13)
Visual Classes Supporting Read-Only Colormaps
594(1)
Visual Classes Supporting Read Write Colormaps
594(1)
Using Xdpyinfo to Determine Visual Support
595(1)
Visual Struct
595(1)
Obtaining the Server's Default Information
596(1)
Obtaining Information about Non-Default Visuals
597(1)
Obtaining Pixel Depths
598(1)
Colormaps
598(3)
Obtaining the Resource ID of the Default Colormap
601(1)
Standard Colormaps
602(4)
Backend Strategies
606(10)
The General Approach
607(2)
Displaying Bitonal Image Data
609(1)
Non-Bitonal SingleBand Image Data and TripleBand Image Data to Static Visuals
609(4)
Displaying Non-Bitonal SingleBand and TripleBand Image Data to Non-Static Visuals
613(3)
Putting It All Together
616(17)
A Simple Backend Strategy
617(5)
Implementation of Backend Routines
622(11)
Summary
633(3)
Appendix
1. Element Abbreviations
636(2)
Glossary 638(10)
References 648(2)
Index 650(22)
About the CD 672