Skip to main content

Dot Diffusion Halftone (Knuth Halftoning, Mese Vaidyanathan Halftoning)

For introduction to Digital Halftoning refer to the following 

http://imageprocessing-sankarsrin.blogspot.tw/2016/12/digital-half-toning-ordered-dithering.html


http://imageprocessing-sankarsrin.blogspot.tw/2017/04/digital-half-toning-error-diffusion.html


Dot Diffusion techniques is an improvisation of error diffusion with parallel processing feature of Ordered dithering. Basically it consist of two matrix such as Class and Diffusion Matrix.

Class Matrix (CM) - Determines the order in which the pixels are processed in a block. (in other techniques raster or serpentine scan order is adopted). Note: All the blocks will be processed in parallel. 



For example in Knuth Class matrix, '0' indicates the index of the first pixel to be processed and in further, pixels are processed with respect to positions of 1,2..63.

Distribution Matrix - Provides the weight-age of error that has to be distributed to neighborhood pixels



Abstract 
Digital halftones by dot diffusion - Knuth

This paper describes a technique for approximating real-valued pixels by two-valued pixels. The new method, called dot diffusion, appears to avoid some deficiencies of other commonly used techniques. It requires approximately the same total number of arithmetic operations as the Floyd-Steinberg method of adaptive grayscale, and it is well suited to parallel computation; but it requires more buffers and more complex program logic than other methods when implemented sequentially. A “smooth” variant of the method may prove to be useful in high-resolution printing.

Optimized Dot Diffusion - Mese

The dot diffusion method for digital halftoning has the advantage of parallelism unlike the error diffusion method However  image quality offered by error diffusion is still regarded as superior to other known methods In this paper we show how the dot diffusion method can be improved by optimization of the so called class matrix By taking the human visual characteristics into account we show that such optimization consistently results in images comparable to error diffusion without sacrificing the parallelism 


Cheers..!!

MATLAB Code:


Comments

Popular posts from this blog

Image RGB to CMYK : Image Conversion - MATLAB Code (RGB to CMYK, CMYK to RGB)

MATAB use makecform and applycform functions to perform this color model conversion  Ref: makecform:  https://www.mathworks.com/help/images/ref/makecform.html Ref: applycform:  https://www.mathworks.com/help/images/ref/applycform.html RGB to CMYK: I_rgb = imread('lena_color.jpg'); %Read the color image  C = makecform('srgb2cmyk');     %srgb (standard rgb) to cmyk  I_CMYK= applycform(I_rgb,C); TO SAVE IN CMYK Format imwrite(I_CMYK, 'test.tiff'); USE IMFINFO to confirm the conversion imfinfo('test.tiff') the command gives the output ... Width: 512 Height: 512 BitDepth: 32 ColorType: 'CMYK' ... CMYK to RGB: I_CMYK = imread('lena_color.jpg'); %Read the color image  C = makecform('cmyk2srgb');     %srgb (standard rgb) to cmyk  I_rgb= applycform(I_CMYK, C);

Digital Half Toning - Ordered Dithering - MATLAB Code Bayer/ Ulichney

Digital Half-toning is a technique to convert the gray scale / color image (in the range 0-255) to binary images (in the range 0-1)  that is useful for printing (especially black and white printers). Though at first glance dots are clearly visible, as Human Vision System is a low pass filter, when dots are printed closely and viewed from the specific distance it can be perceived as a continuous tone image (i.e. gray scale). In general, half toning techniques is widely used in newspapers, journals and magazines printing.  Halftoning algorithms aims for better #Image Quality #Low Complexity #Optimal ink usage Coming to the topic, Ordered dithering is one of the standard technique to produce halftone image from continuous (gray scale) images. Let us assume, the first block containing 'B' is an image matrix and the  'H' is the threshold matrix. And the process is simply a element wise (pixel wise) comparison; if element of B > H (g...

Direct Binary Search Halftoning (DBS) - MATLAB Code (Efficient Direct Binary Search, Halftoning)

Direct binary approach is a heuristic optimization method and is proven to be very powerful to  obtain optimized binary patterns. The approach achieves the least minimum square error between the perceived halftone and original image, though swap and toggle operation. The swap operation consists of switching the current pixel with eight of its neighborhood pixels. Toggle operation is about switching the values between 0 to 1 or vice versa (as shown in Fig. below)      With each iteration, the perceived error starts to reduce and in finally a superior halftone quality is achieved. The method is computationally very expensive and difficult to implement in hardware. The code for Efficient DBS is provided in the link: (MATLAB Code) https://github.com/SankarSrin/EDBS-Halftoning