BN.com Gift Guide

Practical Image and Video Processing Using MATLAB / Edition 1

Hardcover (Print)
Buy New
Buy New from BN.com
$124.96
Used and New from Other Sellers
Used and New from Other Sellers
from $116.77
Usually ships in 1-2 business days
(Save 27%)
Other sellers (Hardcover)
  • All (8) from $116.77   
  • New (7) from $116.77   
  • Used (1) from $122.89   

Overview

Up-to-date, technically accurate coverage of essential topics in image and video processing

This is the first book to combine image and video processing with a practical MATLAB®-oriented approach in order to demonstrate the most important image and video techniques and algorithms. Utilizing minimal math, the contents are presented in a clear, objective manner, emphasizing and encouraging experimentation.

The book has been organized into two parts. Part I: Image Processing begins with an overview of the field, then introduces the fundamental concepts, notation, and terminology associated with image representation and basic image processing operations. Next, it discusses MATLAB® and its Image Processing Toolbox with the start of a series of chapters with hands-on activities and step-by-step tutorials. These chapters cover image acquisition and digitization; arithmetic, logic, and geometric operations; point-based, histogram-based, and neighborhood-based image enhancement techniques; the Fourier Transform and relevant frequency-domain image filtering techniques; image restoration; mathematical morphology; edge detection techniques; image segmentation; image compression and coding; and feature extraction and representation.

Part II: Video Processing presents the main concepts and terminology associated with analog video signals and systems, as well as digital video formats and standards. It then describes the technically involved problem of standards conversion, discusses motion estimation and compensation techniques, shows how video sequences can be filtered, and concludes with an example of a solution to object detection and tracking in video sequences using MATLAB®.

Extra features of this book include:

  • More than 30 MATLAB® tutorials, which consist of step-by-step guides to exploring image and video processing techniques using MATLAB®
  • Chapters supported by figures, examples, illustrative problems, and exercises
  • Useful websites and an extensive list of bibliographical references

This accessible text is ideal for upper-level undergraduate and graduate students in digital image and video processing courses, as well as for engineers, researchers, software developers, practitioners, and anyone who wishes to learn about these increasingly popular topics on their own.

Supplemental resources for readers and instructors can be found at http://www.ogemarques.com

Read More Show Less

Product Details

  • ISBN-13: 9780470048153
  • Publisher: Wiley
  • Publication date: 9/21/2011
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 696
  • Sales rank: 963,377
  • Product dimensions: 6.00 (w) x 9.20 (h) x 1.50 (d)

Meet the Author

Oge Marques, PhD, is Associate Professor in the Department of Computer & Electrical Engineering and Computer Science at Florida Atlantic University. He has been teaching and doing research on image and video processing for more than twenty years, in seven different countries. Dr. Marques is the coauthor of Processamento Digital de Imagens and Content-Based Image and Video Retrieval and was editor-in-chief of the Handbook of Video Databases, a comprehensive work with contributions from more than 100 world experts in the field. He is a Senior Member of both the IEEE and the ACM.

Read More Show Less

Table of Contents

LIST OF FIGURES xxi

LIST OF TABLES xxxix

FOREWORD xli

PREFACE xliii

ACKNOWLEDGMENTS xlix

PART I IMAGE PROCESSING

1 INTRODUCTION AND OVERVIEW 3

1.1 Motivation / 3

1.2 Basic Concepts and Terminology / 5

1.3 Examples of Typical Image Processing Operations / 6

1.4 Components of a Digital Image Processing System / 10

1.5 Machine Vision Systems / 12

1.6 Resources / 14

1.7 Problems / 18

2 IMAGE PROCESSING BASICS 21

2.1 Digital Image Representation / 21

2.1.1 Binary (1-Bit) Images / 23

2.1.2 Gray-Level (8-Bit) Images / 24

2.1.3 Color Images / 25

2.1.4 Compression / 26

2.2 Image File Formats / 27

2.3 Basic Terminology / 28

2.4 Overview of Image Processing Operations / 30

2.4.1 Global (Point) Operations / 31

2.4.2 Neighborhood-Oriented Operations / 31

2.4.3 Operations Combining Multiple Images / 32

2.4.4 Operations in a Transform Domain / 32

3 MATLAB BASICS 35

3.1 Introduction to MATLAB / 35

3.2 Basic Elements of MATLAB / 36

3.2.1 Working Environment / 36

3.2.2 Data Types / 37

3.2.3 Array and Matrix Indexing in MATLAB / 37

3.2.4 Standard Arrays / 37

3.2.5 Command-Line Operations / 38

3.3 Programming Tools: Scripts and Functions / 38

3.3.1 M-Files / 39

3.3.2 Operators / 40

3.3.3 Important Variables and Constants / 42

3.3.4 Number Representation / 42

3.3.5 Flow Control / 43

3.3.6 Code Optimization / 43

3.3.7 Input and Output / 43

3.4 Graphics and Visualization / 43

3.5 Tutorial 3.1: MATLAB—a Guided Tour / 44

3.6 Tutorial 3.2: MATLAB Data Structures / 46

3.7 Tutorial 3.3: Programming in MATLAB / 53

3.8 Problems / 59

4 THE IMAGE PROCESSING TOOLBOX AT A GLANCE 61

4.1 The Image Processing Toolbox: an Overview / 61

4.2 Essential Functions and Features / 62

4.2.1 Displaying Information About an Image File / 62

4.2.2 Reading an Image File / 64

4.2.3 Data Classes and Data Conversions / 65

4.2.4 Displaying the Contents of an Image / 68

4.2.5 Exploring the Contents of an Image / 69

4.2.6 Writing the Resulting Image onto a File / 70

4.3 Tutorial 4.1: MATLAB Image Processing Toolbox—a Guided Tour / 72

4.4 Tutorial 4.2: Basic Image Manipulation / 74

4.5 Problems / 80

5 IMAGE SENSING AND ACQUISITION 83

5.1 Introduction / 83

5.2 Light, Color, and Electromagnetic Spectrum / 84

5.2.1 Light and Electromagnetic Spectrum / 84

5.2.2 Types of Images / 85

5.2.3 Light and Color Perception / 86

5.2.4 Color Encoding and Representation / 87

5.3 Image Acquisition / 89

5.3.1 Image Sensors / 89

5.3.2 Camera Optics / 92

5.4 Image Digitization / 93

5.4.1 Sampling / 95

5.4.2 Quantization / 96

5.4.3 Spatial and Gray-Level Resolution / 97

5.5 Problems / 101

6 ARITHMETIC AND LOGIC OPERATIONS 103

6.1 Arithmetic Operations: Fundamentals and Applications / 103

6.1.1 Addition / 104

6.1.2 Subtraction / 106

6.1.3 Multiplication and Division / 109

6.1.4 Combining Several Arithmetic Operations / 110

6.2 Logic Operations: Fundamentals and Applications / 111

6.3 Tutorial 6.1: Arithmetic Operations / 113

6.4 Tutorial 6.2: Logic Operations and Region of Interest Processing / 118

6.5 Problems / 122

7 GEOMETRIC OPERATIONS 125

7.1 Introduction / 125

7.2 Mapping and Affine Transformations / 127

7.3 Interpolation Methods / 130

7.3.1 The Need for Interpolation / 130

7.3.2 A Simple Approach to Interpolation / 131

7.3.3 Zero-Order (Nearest-Neighbor) Interpolation / 132

7.3.4 First-Order (Bilinear) Interpolation / 132

7.3.5 Higher Order Interpolations / 132

7.4 Geometric Operations Using MATLAB / 132

7.4.1 Zooming, Shrinking, and Resizing / 133

7.4.2 Translation / 134

7.4.3 Rotation / 134

7.4.4 Cropping / 134

7.4.5 Flipping / 134

7.5 Other Geometric Operations and Applications / 134

7.5.1 Warping / 134

7.5.2 Nonlinear Image Transformations / 135

7.5.3 Morphing / 137

7.5.4 Seam Carving / 137

7.5.5 Image Registration / 137

7.6 Tutorial 7.1: Image Cropping, Resizing, Flipping, and Rotation / 138

7.7 Tutorial 7.2: Spatial Transformations and Image Registration / 142

7.8 Problems / 149

8 GRAY-LEVEL TRANSFORMATIONS 151

8.1 Introduction / 151

8.2 Overview of Gray-level (Point) Transformations / 152

8.3 Examples of Point Transformations / 155

8.3.1 Contrast Manipulation / 155

8.3.2 Negative / 157

8.3.3 Power Law (Gamma) Transformations / 157

8.3.4 Log Transformations / 159

8.3.5 Piecewise Linear Transformations / 160

8.4 Specifying the Transformation Function / 161

8.5 Tutorial 8.1: Gray-level Transformations / 163

8.6 Problems / 169

9 HISTOGRAM PROCESSING 171

9.1 Image Histogram: Definition and Example / 171

9.2 Computing Image Histograms / 173

9.3 Interpreting Image Histograms / 174

9.4 Histogram Equalization / 176

9.5 Direct Histogram Specification / 181

9.6 Other Histogram Modification Techniques / 184

9.6.1 Histogram Sliding / 185

9.6.2 Histogram Stretching / 185

9.6.3 Histogram Shrinking / 186

9.7 Tutorial 9.1: Image Histograms / 188

9.8 Tutorial 9.2: Histogram Equalization and Specification / 191

9.9 Tutorial 9.3: Other Histogram Modification Techniques / 195

9.10 Problems / 200

10 NEIGHBORHOOD PROCESSING 203

10.1 Neighborhood Processing / 203

10.2 Convolution and Correlation / 204

10.2.1 Convolution in the One-Dimensional Domain / 204

10.2.2 Convolution in the Two-Dimensional Domain / 206

10.2.3 Correlation / 208

10.2.4 Dealing with Image Borders / 210

10.3 Image Smoothing (Low-pass Filters) / 211

10.3.1 Mean Filter / 213

10.3.2 Variations / 213

10.3.3 Gaussian Blur Filter / 215

10.3.4 Median and Other Nonlinear Filters / 216

10.4 Image Sharpening (High-pass Filters) / 218

10.4.1 The Laplacian / 219

10.4.2 Composite Laplacian Mask / 220

10.4.3 Directional Difference Filters / 220

10.4.4 Unsharp Masking / 221

10.4.5 High-Boost Filtering / 221

10.5 Region of Interest Processing / 222

10.6 Combining Spatial Enhancement Methods / 223

10.7 Tutorial 10.1: Convolution and Correlation / 223

10.8 Tutorial 10.2: Smoothing Filters in the Spatial Domain / 225

10.9 Tutorial 10.3: Sharpening Filters in the Spatial Domain / 228

10.10 Problems / 234

11 FREQUENCY-DOMAIN FILTERING 235

11.1 Introduction / 235

11.2 Fourier Transform: the Mathematical Foundation / 237

11.2.1 Basic Concepts / 237

11.2.2 The 2D Discrete Fourier Transform: Mathematical Formulation / 239

11.2.3 Summary of Properties of the Fourier Transform / 241

11.2.4 Other Mathematical Transforms / 242

11.3 Low-pass Filtering / 243

11.3.1 Ideal LPF / 244

11.3.2 Gaussian LPF / 246

11.3.3 Butterworth LPF / 246

11.4 High-pass Filtering / 248

11.4.1 Ideal HPF / 248

11.4.2 Gaussian HPF / 250

11.4.3 Butterworth HPF / 250

11.4.4 High-Frequency Emphasis / 251

11.5 Tutorial 11.1: 2D Fourier Transform / 252

11.6 Tutorial 11.2: Low-pass Filters in the Frequency Domain / 254

11.7 Tutorial 11.3: High-pass Filters in the Frequency Domain / 258

11.8 Problems / 264

12 IMAGE RESTORATION 265

12.1 Modeling of the Image Degradation and Restoration Problem / 265

12.2 Noise and Noise Models / 266

12.2.1 Selected Noise Probability Density Functions / 267

12.2.2 Noise Estimation / 269

12.3 Noise Reduction Using Spatial-domain Techniques / 269

12.3.1 Mean Filters / 273

12.3.2 Order Statistic Filters / 275

12.3.3 Adaptive Filters / 278

12.4 Noise Reduction Using Frequency-domain Techniques / 278

12.4.1 Periodic Noise / 279

12.4.2 Bandreject Filter / 280

12.4.3 Bandpass Filter / 281

12.4.4 Notch Filter / 282

12.5 Image Deblurring Techniques / 283

12.5.1 Wiener Filtering / 286

12.6 Tutorial 12.1: Noise Reduction Using Spatial-domain Techniques / 289

12.7 Problems / 296

13 MORPHOLOGICAL IMAGE PROCESSING 299

13.1 Introduction / 299

13.2 Fundamental Concepts and Operations / 300

13.2.1 The Structuring Element / 301

13.3 Dilation and Erosion / 304

13.3.1 Dilation / 305

13.3.2 Erosion / 307

13.4 Compound Operations / 310

13.4.1 Opening / 310

13.4.2 Closing / 311

13.4.3 Hit-or-Miss Transform / 313

13.5 Morphological Filtering / 314

13.6 Basic Morphological Algorithms / 315

13.6.1 Boundary Extraction / 317

13.6.2 Region Filling / 319

13.6.3 Extraction and Labeling of Connected

Components / 321

13.7 Grayscale Morphology / 322

13.7.1 Dilation and Erosion / 323

13.7.2 Opening and Closing / 323

13.7.3 Top-Hat and Bottom-Hat Transformations / 325

13.8 Tutorial 13.1: Binary Morphological Image Processing / 325

13.9 Tutorial 13.2: Basic Morphological Algorithms / 330

13.10 Problems / 334

14 EDGE DETECTION 335

14.1 Formulation of the Problem / 335

14.2 Basic Concepts / 336

14.3 First-order Derivative Edge Detection / 338

14.4 Second-order Derivative Edge Detection / 343

14.4.1 Laplacian of Gaussian / 345

14.5 The Canny Edge Detector / 347

14.6 Edge Linking and Boundary Detection / 348

14.6.1 The Hough Transform / 349

14.7 Tutorial 14.1: Edge Detection / 354

14.8 Problems / 363

15 IMAGE SEGMENTATION 365

15.1 Introduction / 365

15.2 Intensity-based Segmentation / 367

15.2.1 Image Thresholding / 368

15.2.2 Global Thresholding / 369

15.2.3 The Impact of Illumination and Noise on Thresholding / 370

15.2.4 Local Thresholding / 371

15.3 Region-based Segmentation / 373

15.3.1 Region Growing / 374

15.3.2 Region Splitting and Merging / 377

15.4 Watershed Segmentation / 377

15.4.1 The Distance Transform / 378

15.5 Tutorial 15.1: Image Thresholding / 379

15.6 Problems / 386

16 COLOR IMAGE PROCESSING 387

16.1 The Psychophysics of Color / 387

16.1.1 Basic Concepts / 388

16.1.2 The CIE XYZ Chromaticity Diagram / 390

16.1.3 Perceptually Uniform Color Spaces / 393

16.1.4 ICC Profiles / 395

16.2 Color Models / 396

16.2.1 The RGB Color Model / 396

16.2.2 The CMY and CMYK Color Models / 398

16.2.3 The HSV Color Model / 398

16.2.4 The YIQ (NTSC) Color Model / 401

16.2.5 The YCbCr Color Model / 401

16.3 Representation of Color Images in MATLAB / 401

16.3.1 RGB Images / 402

16.3.2 Indexed Images / 403

16.4 Pseudocolor Image Processing / 406

16.4.1 Intensity Slicing / 406

16.4.2 Gray Level to Color Transformations / 407

16.4.3 Pseudocoloring in the Frequency Domain / 408

16.5 Full-color Image Processing / 409

16.5.1 Color Transformations / 410

16.5.2 Histogram Processing / 412

16.5.3 Color Image Smoothing and Sharpening / 412

16.5.4 Color Noise Reduction / 414

16.5.5 Color-Based Image Segmentation / 414

16.5.6 Color Edge Detection / 417

16.6 Tutorial 16.1: Pseudocolor Image Processing / 419

16.7 Tutorial 16.2: Full-color Image Processing / 420

16.8 Problems / 425

17 IMAGE COMPRESSION AND CODING 427

17.1 Introduction / 427

17.2 Basic Concepts / 428

17.2.1 Redundancy / 428

17.2.2 Image Encoding and Decoding Model / 431

17.3 Lossless and Lossy Compression Techniques / 432

17.3.1 Lossless Compression Techniques / 432

17.3.2 Lossy Compression Techniques / 433

17.4 Image Compression Standards / 435

17.4.1 Binary Image Compression Standards / 435

17.4.2 Continuous Tone Still Image Compression Standards / 435

17.4.3 JPEG / 436

17.4.4 JPEG 2000 / 437

17.4.5 JPEG-LS / 437

17.5 Image Quality Measures / 438

17.5.1 Subjective Quality Measurement / 438

17.5.2 Objective Quality Measurement / 439

17.6 Tutorial 17.1: Image Compression / 440

18 FEATURE EXTRACTION AND REPRESENTATION 447

18.1 Introduction / 447

18.2 Feature Vectors and Vector Spaces / 448

18.2.1 Invariance and Robustness / 449

18.3 Binary Object Features / 450

18.3.1 Area / 450

18.3.2 Centroid / 450

18.3.3 Axis of Least Second Moment / 451

18.3.4 Projections / 451

18.3.5 Euler Number / 452

18.3.6 Perimeter / 453

18.3.7 Thinness Ratio / 453

18.3.8 Eccentricity / 454

18.3.9 Aspect Ratio / 454

18.3.10 Moments / 455

18.4 Boundary Descriptors / 456

18.4.1 Chain Code, Freeman Code, and Shape Number / 459

18.4.2 Signatures / 461

18.4.3 Fourier Descriptors / 462

18.5 Histogram-based (Statistical) Features / 464

18.6 Texture Features / 466

18.7 Tutorial 18.1: Feature Extraction and Representation / 470

18.8 Problems / 474

19 VISUAL PATTERN RECOGNITION 475

19.1 Introduction / 475

19.2 Fundamentals / 476

19.2.1 Design and Implementation of a Visual Pattern Classifier / 476

19.2.2 Patterns and Pattern Classes / 478

19.2.3 Data Preprocessing / 479

19.2.4 Training and Test Sets / 480

19.2.5 Confusion Matrix / 480

19.2.6 System Errors / 481

19.2.7 Hit Rates, False Alarm Rates, and ROC Curves / 481

19.2.8 Precision and Recall / 482

19.2.9 Distance and Similarity Measures / 485

19.3 Statistical Pattern Classification Techniques / 487

19.3.1 Minimum Distance Classifier / 488

19.3.2 k-Nearest Neighbors Classifier / 490

19.3.3 Bayesian Classifier / 490

19.4 Tutorial 19.1: Pattern Classification / 491

19.5 Problems / 497

PART II VIDEO PROCESSING

20 VIDEO FUNDAMENTALS 501

20.1 Basic Concepts and Terminology / 501

20.2 Monochrome Analog Video / 507

20.2.1 Analog Video Raster / 507

20.2.2 Blanking Intervals / 508

20.2.3 Synchronization Signals / 509

20.2.4 Spectral Content of Composite Monochrome Analog Video / 509

20.3 Color in Video / 510

20.4 Analog Video Standards / 512

20.4.1 NTSC / 513

20.4.2 PAL / 513

20.4.3 SECAM / 514

20.4.4 HDTV / 514

20.5 Digital Video Basics / 514

20.5.1 Advantages of Digital Video / 515

20.5.2 Parameters of a Digital Video Sequence / 516

20.5.3 The Audio Component / 517

20.6 Analog-to-Digital Conversion / 517

20.7 Color Representation and Chroma Subsampling / 520

20.8 Digital Video Formats and Standards / 521

20.8.1 The Rec. 601 Digital Video Format / 522

20.8.2 The Common Intermediate Format / 523

20.8.3 The Source Intermediate Format / 524

20.9 Video Compression Techniques and Standards / 524

20.9.1 Video Compression Standards, Codecs, and Containers / 525

20.10 Video Processing in MATLAB / 526

20.10.1 Reading Video Files / 527

20.10.2 Processing Video Files / 527

20.10.3 Playing Video Files / 527

20.10.4 Writing Video Files / 528

20.11 Tutorial 20.1: Basic Digital Video Manipulation in MATLAB / 528

20.12 Tutorial 20.2: Working with YUV Video Data / 534

20.13 Problems / 539

21 VIDEO SAMPLING RATE AND STANDARDS CONVERSION 541

21.1 Video Sampling / 541

21.2 Sampling Rate Conversion / 542

21.3 Standards Conversion / 543

21.3.1 Deinterlacing / 543

21.3.2 Conversion between PAL and NTSC Signals / 545

21.3.3 Color Space Conversion / 545

21.3.4 Aspect Ratio Conversion / 546

21.3.5 3:2 Pull-Down / 547

21.4 Tutorial 21.1: Line Down-Conversion / 548

21.5 Tutorial 21.2: Deinterlacing / 550

21.6 Tutorial 21.3: NTSC to PAL Conversion / 556

21.7 Tutorial 21.4: 3:2 Pull-Down / 557

21.8 Problems / 559

22 DIGITAL VIDEO PROCESSING TECHNIQUES AND APPLICATIONS 561

22.1 Fundamentals of Motion Estimation and Motion Compensation / 561

22.2 General Methodologies in Motion Estimation / 564

22.2.1 Motion Representation / 566

22.2.2 Motion Estimation Criteria / 567

22.2.3 Optimization Methods / 567

22.3 Motion Estimation Algorithms / 568

22.3.1 Exhaustive Search Block Matching Algorithm / 568

22.3.2 Fast Algorithms / 570

22.3.3 Hierarchical Block Matching Algorithm / 571

22.3.4 Phase Correlation Method / 573

22.4 Video Enhancement and Noise Reduction / 573

22.4.1 Noise Reduction in Video / 574

22.4.2 Interframe Filtering Techniques / 575

22.5 Case Study: Object Segmentation and Tracking in the Presence of Complex Background / 576

22.6 Tutorial 22.1: Block-based Motion Estimation / 579

22.7 Tutorial 22.2: Intraframe and Interframe Filtering Techniques / 585

22.8 Problems / 589

Appendix A: HUMAN VISUAL PERCEPTION 591

A.1 Introduction / 591

A.2 The Human Eye / 592

A.3 Characteristics of Human Vision / 596

A.3.1 Resolution, Viewing Distance, and Viewing Angle / 596

A.3.2 Detail and Sharpness Perception / 598

A.3.3 Optical Transfer Function and Modulation Transfer Function / 599

A.3.4 Brightness Perception / 600

A.3.5 Contrast Ratio and Contrast Sensitivity Function / 603

A.3.6 Perception of Motion / 605

A.3.7 Spatiotemporal Resolution and Frequency Response / 606

A.3.8 Masking / 608

A.4 Implications and Applications of Knowledge about the Human Visual System / 609

Appendix B: GUI DEVELOPMENT 611

B.1 Introduction / 611

B.2 GUI File Structure / 611

B.3 Passing System Control / 613

B.4 The UserData Object / 615

B.5 A Working GUI Demo / 616

B.6 Concluding Remarks / 618

REFERENCES 619

INDEX 627

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)