Deep Learning 深度学习 DAY7

37 阅读1分钟

数字图像处理

读取图像

import cv2 as cv  //opencv读取的格式是BGR
import numpy as np

img = cv.imread("image/lenna.jpg")

print(img)

颜色通道提取

import cv2 as cv
import numpy as np

img = cv.imread("image/lenna.jpg")

b,g,r = cv.split(img)

print(b)

img = cv.merge((b,g,r)) //将三个通道融合

图像权重相加

import cv2 as cv
import numpy as np

img1 = cv.imread("image/hy.jpg")
img2 = cv.imread("image/ok.jpg")

img1 = cv.resize(img1,(256,356))
img2 = cv.resize(img2,(256,356))

res = cv.addWeighted(img1,0.4,img2,0.6,0)

cv.imshow("out",res)
cv.waitKey(0)

腐蚀 膨胀运算

开运算 闭运算

图像锐化处理 (提取轮廓)

import cv2
import numpy as np
import matplotlib.pyplot as plt

kernel = np.ones((10,10),np.uint8)

src = cv2.imread("image/hy.jpg")

sobelX = cv2.Sobel(src[:,:,1], cv2.CV_16S, 1, 0)
sobelY = cv2.Sobel(src[:,:,1], cv2.CV_16S, 0, 1)

sobelXY = cv2.Sobel(src[:,:,1], cv2.CV_16S, 1, 1)
sobelXY = cv2.convertScaleAbs(sobelXY)

sobelX = cv2.convertScaleAbs(sobelX)
sobelY = cv2.convertScaleAbs(sobelY)

sobelXY = cv2.addWeighted(sobelX, 0.5, sobelY, 0.5, 0)

plt.subplot(131), plt.title('sobel X')
plt.imshow(sobelX, cmap='gray')

plt.subplot(132), plt.title('sobel Y')
plt.imshow(sobelY, cmap='gray')

plt.subplot(133), plt.title('sobel XY')
plt.imshow(sobelXY, cmap='gray')

plt.show()

上面的是Sobel算子 lapkacian算子等用法基本上差不多

图像平滑处理

剩余的就是边缘检测 轮廓提取