Main Content

Neighborhood and Block Processing

Define neighborhoods and blocks for filtering and I/O operations

Certain image processing operations involve processing an image in sections, rather than processing the entire image at once. A sliding neighborhood operation processes an image one pixel at a time, by applying an algorithm to each pixels neighborhood. In distinct block processing, an image is divided into equally-sized blocks without overlap, and the algorithm is applied to each distinct block. The neighborhoods and blocks are then reassembled to form the output image.


blockprocDistinct block processing for image
bestblkDetermine optimal block size for block processing
nlfilterGeneral sliding-neighborhood operations
col2imRearrange matrix columns into blocks
colfiltColumn-wise neighborhood operations
im2colRearrange image blocks into columns


ImageAdapterInterface for image I/O


Neighborhood or Block Processing: An Overview

Divide an image into sections, called blocks or neighborhoods, to reduce the memory needed to process the image.

Sliding Neighborhood Operations

A sliding neighborhood operation is performed one pixel at a time using information about the pixel’s neighborhood.

Distinct Block Processing

Distinct block processing divides an image into nonoverlapping rectangular sections that can be processed individually.

Block Size and Performance

Using larger block sizes reduces overall computation time but requires more memory to process each block.

Use Column-wise Processing to Speed Up Sliding Neighborhood or Distinct Block Operations

Reshape sliding neighborhoods and distinct blocks to reduce the execution time of processing an image.

Perform Block Processing on Image Files in Unsupported Formats

To work with image data in file formats not supported by block processing functions, construct a class that manages files based on region.

Parallel Block Processing on Large Image Files

If you have a Parallel Computing Toolbox™ license, you can take advantage of multiple processor cores on your machine to improve the performance of blockproc.

Featured Examples