← 学习库 Computer Vision: Algorithms and Applications (2nd) 本册目录

Chapter 3: Image processing

  • Before diving into OpenCV, I would encourage you to write some simple image processing functions in NumPy using the built-in multidimensional array notation. It's fine to use OpenCV for image input/output and to use Matplotlib for visualization. There are also other high-level packages for image processing, such as scikit-image and PIL/Pillow. A more recently developed computer vision library is MMCV (https://openmmlab.com/codebase#MMCV).
  • As a warm-up exercise, before diving into machine learning but after doing the basic PyTorch or TensorFlow tutorials, try porting your NumPy code into one of these languages.
  • Another language that supports array-level functional programming is Halide (https://halide-lang.org) (Ragan-Kelley, Barnes et al. 2013), which provides optimized compilation onto a large number of targets, including CPUs, GPUs, mobile processors, and DSPs such as the Qualcomm Hexagon.

• For wavelets, PyWavelets (https://pywavelets.readthedocs.io) has a nice extensive set of variants.

I have always found it helpful to have an image viewer where I can quickly flip between aligned images to look for differences, which show up much better than when viewing images side-by-side.

← Chapter 14: Image-based renderingChapter 4: Model fitting and optimization →