这里写目录标题
- 1 图像加减乘除位运算
- 1.1 加法 img = cv2.add(img1, img2)
- 1.2 减法 img = cv2.subtract(img1, img2)
- 1.3 乘法 img = cv2.multiply(img1, img2)
- 1.4 除法 img = cv2.divide(img1, img2)
- 1.5 位运算
- 2 图像增强
-
- 3 图像几何变换
- 3.1 裁剪、放大、缩小
- 3.2 平移变换
- 3.3 错切变换
- 3.4 镜像变换
- 3.5 旋转变换
- 3.6 透视变换
- 3.7 最近邻插值、双线性插值
1 图像加减乘除位运算
1.1 加法 img = cv2.add(img1, img2)
import cv2
import numpy as np
import matplotlib.pyplot as pltlena = cv2.imread('lenacolor.png',-1)
noise = np.random.randint(0,255,lena.shape,dtype=np.uint8)
img_add = lena+noise
img_cv_add = cv2.add(lena,noise)plt.subplot(221)
plt.title('lena')
plt.imshow(lena[...,::-1])
plt.subplot(222)
plt.title('noise')
plt.imshow(noise[...,::-1])
plt.subplot(223)
plt.title('img_add')
plt.imshow(img_add[...,::-1])
plt.subplot(224)
plt.title('img_cv_add')
plt.imshow(img_cv_add[...,::-1])
plt.show()
1.2 减法 img = cv2.subtract(img1, img2)
import cv2
import numpy as np
import matplotlib.pyplot as pltimg_0 = cv2.imread('34.jpeg',-1)
img_1 = cv2.imread('35.jpeg',-1)
img_sub = cv2.subtract(img_0, img_1)plt.subplot(131)
plt.title('img_0')
plt.imshow(img_0[...,::-1])
plt.subplot(132)
plt.title('img_1')
plt.imshow(img_1[...,::-1])
plt.subplot(133)
plt.title('img_sub')
plt.imshow(img_sub[...,::-1])
plt.show()
import cv2
import numpy as np
import matplotlib.pyplot as pltimg_0 = cv2.imread('img_no.png',0)
img_1 = cv2.imread('sub.png',0)
img_sub = cv2.subtract(img_0, img_1)plt.subplot(131)
plt.title('img_0')
plt.imshow(img_0,cmap='gray')
plt.subplot(132)
plt.title('img_1')
plt.imshow(img_1,cmap='gray')
plt.subplot(133)
plt.title('img_sub')
plt.imshow(img_sub,cmap='gray')
plt.show()
1.3 乘法 img = cv2.multiply(img1, img2)
import cv2
import numpy as np
import matplotlib.pyplot as pltlena = cv2.imread('lenacolor.png',-1)
mask = np.zeros_like(lena,np.uint8)
mask[204:392,213:354] = 1
img_mul = cv2.multiply(lena, mask)plt.subplot(131)
plt.title('lena')
plt.imshow(lena[...,::-1])
plt.subplot(132)
plt.title('mask')
plt.imshow(mask[...,::-1])
plt.subplot(133)
plt.title('img_mul')
plt.imshow(img_mul[...,::-1])
plt.show()
1.4 除法 img = cv2.divide(img1, img2)
import cv2
import numpy as np
import matplotlib.pyplot as pltlena = cv2.imread('lenacolor.png',0)
img_noise = cv2.circle(lena.copy(),(280,300),150,(0,255,0),10)
img_div = cv2.divide(img_noise,lena)plt.subplot(131)
plt.title('lena')
plt.imshow(lena,cmap='gray')
plt.subplot(132)
plt.title('img_noise')
plt.imshow(img_noise,cmap='gray')
plt.subplot(133)
plt.title('img_div')
plt.imshow(img_div,cmap='gray')
plt.show()
1.5 位运算
2 图像增强
2.1 线性变换
2.2 非线性变换
3 图像几何变换
3.1 裁剪、放大、缩小
3.2 平移变换
3.3 错切变换
3.4 镜像变换
3.5 旋转变换
3.6 透视变换
3.7 最近邻插值、双线性插值