Un'immagine binaria (o bitonale, o bilivello) è una immagine digitale che ha due possibili valori per ogni pixel[1]. Tipicamente i due colori usati in una immagine binaria sono bianco e nero sebbene possa essere usato qualsiasi colore. il colore usato per gli oggetti nell'immagine è per i soggetti in primo piano il bianco mentre per lo sfondo il nero. Nel settore della scansione dei documenti ci si riferisce come immagine bitonale. Ogni pixel, poi, è memorizzato in un solo bit.
Le immagini binarie sono spesso usate nell'elaborazione delle immagini come maschere o come risultato di alcune operazioni quali la segmentazione, la soglia e oscillazione (dithering). alcuni dispositivi come stampanti laser, macchine fax lavorano solo con immagini binarie.
Una immagine binaria può essere memorizzata con formato bitmap. Una immagine di 640x480 pixel richiede 37,5 KB di memoria (640x480/8=38400).
Creazione di una immagine binaria con il modulo opencv2 con i linguaggi di programmazione C, C++ e Python e con il modulo mahotas e scikit image di python:
IplImage* im_gray = cvLoadImage("image.jpg",CV_LOAD_IMAGE_GRAYSCALE);
// C++ (OpenCV 2.0)
Mat im_gray = imread("image.jpg",CV_LOAD_IMAGE_GRAYSCALE);
// C
IplImage *im_rgb = cvLoadImage("image.jpg");
IplImage *im_gray = cvCreateImage(cvGetSize(im_rgb),IPL_DEPTH_8U,1);
cvCvtColor(im_rgb,im_gray,CV_RGB2GRAY);
// C++
Mat im_rgb = imread("image.jpg");
Mat im_gray;
cvtColor(im_rgb,im_gray,CV_RGB2GRAY);
// C
IplImage* im_bw = cvCreateImage(cvGetSize(im_gray),IPL_DEPTH_8U,1);
cvThreshold(im_gray, im_bw, 128, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
// C++
Mat img_bw = im_gray > 128;
path "documents/image.jpg"
#opencv2
import cv2
gray = cv2.imread(path,0)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV)
#mahotas
import mahotas as mh
fork = mh.imread(path)
imgbnbin = fork[:,:,0]
bfork = imgbnbin < 150
#scikit image
import skimage
image = skimage.imread(path)
global_thresh = skimage.threshold_otsu(image)
binary_global = image > global_thresh