与运算

与运算是指将两幅原始图像对应位置处两个像素的灰度值通过与操作得到一个新的灰度值,作为结果图像对应位置处像素的灰度值。设两个像素为p和q,则与运算可表示为:

python 图像数字化 数字图像处理python_异或运算


两幅图像的矩阵数据如下所示,试求X·Y的结果。

python 图像数字化 数字图像处理python_数字图像处理_02


两幅图像相与的结果为:

python 图像数字化 数字图像处理python_数据_03

img1 = self.xBitMap1.img
img2 = self.xBitMap2.img
out=img1&img2
XImage.imShow(out, self.lb3)

python 图像数字化 数字图像处理python_数字图像处理_04

或运算

或运算是指将两幅原始图像对应位置处两个像素的灰度值通过或操作得到一个新的灰度值,作为结果图像对应位置处像素的灰度值。设两个像素为p和q,则或运算可表示为:

python 图像数字化 数字图像处理python_数据_05


式中:f(x)为像素x的灰度值。

两幅图像的矩阵数据如下所示,试求X+Y的结果。

python 图像数字化 数字图像处理python_异或运算_06


两幅图像相或的结果为:

python 图像数字化 数字图像处理python_python 图像数字化_07

out=img1|img2

python 图像数字化 数字图像处理python_python 图像数字化_08

非运算(补运算)

补运算是指将两幅原始图像对应位置处两个像素的灰度值通过补操作得到一个新的灰度值,作为结果图像对应位置处像素的灰度值。设像素为p,则补运算可表示为:

python 图像数字化 数字图像处理python_python 图像数字化_09


式中:f(x)为像素x的灰度值。

图像X的矩阵数据如下所示,试求 的结果。

python 图像数字化 数字图像处理python_异或运算_10


图像X的补运算结果为:

python 图像数字化 数字图像处理python_数据_11

out=~img1
out2=~img2

python 图像数字化 数字图像处理python_python 图像数字化_12

异或运算

异或运算是指将两幅原始图像对应位置处两个像素的灰度值通过异或操作得到一个新的灰度值,作为结果图像对应位置处像素的灰度值。设两个像素为p和q,则异或运算可表示为:

python 图像数字化 数字图像处理python_数据_13


式中:f(x)为像素x的灰度值。

两幅图像的矩阵数据如下所示,试求X⊕Y的结果。

python 图像数字化 数字图像处理python_数字图像处理_14


两幅图像异或的结果为:

python 图像数字化 数字图像处理python_异或运算_15

out = img1 ^ img2

python 图像数字化 数字图像处理python_数字图像处理_16

边缘检测

逻辑运算的典型应用为边缘检测。基于逻辑运算的边缘检测算法包括以下六个步骤。注意:算法针对二维图像;对于三维图像,需要在6个方向(左右上下前后)上进行操作。
(1) 设原始图像为图(a);
(2) 将图(a)的像素向左移动1个像素的位置得到图(b);
(3) 将图(a)和图(b)进行逻辑或运算得到图©;
(4) 将图(a)和图©进行逻辑异或运算得到图(d);
(5) 对左右上下共4个方向都进行上述操作得到4个结果图像,将4个结果图像进行逻辑或运算得到原图像的边缘。

img1=XCV.left(img)
img2=XCV.right(img)
img3=XCV.up(img)
img4=XCV.down(img)
out= img1|img2|img3|img4

python 图像数字化 数字图像处理python_python 图像数字化_17


python 图像数字化 数字图像处理python_灰度值_18