导入一些需要用的库
import numpy as np
import cv2 as cv
关于膨胀
img = cv.imread("图片的路径") #不能出现中文路径
#定义一个卷积核
kernel = np.ones((5,5),np.uint8) #5*5的值为1的矩阵
imgDialation = cv.dialate(imgCanny,kernel,iterations = 1) //内核迭代1次
cv.imshow("Dialation Image",imgdialation)
运行结果为:
左图为膨胀后的图片,右图为原图
如果把迭代次数改为5,如下图:
关于侵蚀
imgEroded = cv.erode(imgDialation,kernerl ,iteration = 1)
cv.imshow("Eroded Image ",imgErode)
如图:
左边是侵蚀图像,中间是膨胀图像,右边是原图。
关于伸缩
img = cv.imread("lambo.png")
print(img.shape) #输出(462,623,3)462*623像素的3通道图片
imgResize = cv.resize(img,(300,200)) #同样如果想伸展改为大于原图像的值即可
print(imgResize.shape)#(200,300,3)
cv.imshow("Image Resize",imgResize)
结果如下:
左图为原图,右图为处理过的
关于剪裁
imgCropped = img[0:200,200:500] #高 宽
cv.imshow("Imge cropped",imgCropped)
左图为剪裁后的图片,右图为原图
关于绘制形状
import cv2 as cv
import numpy as np
img = np.zeros((512,512)) #512*512的值为0的矩阵,如果想变成3通道图像改为((512,512),3)
print(img.shape) #(512,512)
cv.imshow("Image",img)
如图:
512512的灰度图像*
关于给图像上色
img[:] = 255,0,0 #给整张图像涂上蓝色,局部:[200:300,100:300] = 255,0,0
如图:
关于绘制线条
cv.line(img,(0,0),(300,300),(0,255,0),3)#(图像名,坐标,坐标,颜色,通道数)
如图:
cv.line(img,(0,0),(img.shape[0],img.shape[1]),(0,255,0),3)#其中(img.shape[0],img.shape[1])代表(高度,宽度)
如图:
关于填充颜色
cv.rectangle(img,(0,0),(250,350),(0,255,0),3,FILLED)
如图: