OpenCV-Python读图以及预处理

算子

# 读取彩色图
imgcai = cv.imread("D:/1.png", cv.IMREAD_COLOR)

# 读取灰度图
imghui = cv.imread("D:/1.png", cv.IMREAD_GRAYSCALE)

# 保存
cv.imwrite("C:/Users/ASUS/Desktop/111.png", imghui)

# 显示图片
cv.imshow(name, img)

# 等待时间然后消失,0表示按任意键终止
cv.waitKey(0)
cv.destroyAllWindows()

# 颜色通道提取
b, g, r = cv.split(img)

# 粉色胡桃 RGB赋值
cur_img[:, :, 0] = 255
cur_img[:, :, 1] = 0
cur_img[:, :, 2] = 255

#两张图片融合
res = cv.addWeighted(img, 1, cur_img, 0.6, 0)

'''读取视频'''
vc = cv.VideoCapture("C:/Users/ASUS/Desktop/leishen.mp4")

#一帧一帧读取
open, frame1 = vc.read()  # 第一个参数是 bool 第二个参数是一帧的图像

#键盘esc
if cv.waitKey(20) & 0xFF == 27:#后面的27是键盘的退出键

#释放资源
vc.release()
# cv.THRESH_BINARY 输入的图片(灰度图)  当前像素阈值超过127 超过的部分取255.否则取0
ret, thresh1 = cv.threshold(img, 127, 255, cv.THRESH_BINARY)  # 第一个参数是返回的阈值 第二个是图像

# cv.THRESH_BINARY_INV黑白翻转
ret, thresh2 = cv.threshold(img, 127, 255, cv.THRESH_BINARY_INV)

# cv.THRESH_TRUNC大于阈值设为阈值否则不变
ret, thresh3 = cv.threshold(img, 127, 255, cv.THRESH_TRUNC)

# cv.THRESH_TOZERO大于阈值设为阈值否则变为0
ret, thresh4 = cv.threshold(img, 127, 255, cv.THRESH_TOZERO)

# cv.THRESH_TOZERO_INV黑白翻转
ret, thresh5 = cv.threshold(img, 127, 255, cv.THRESH_TOZERO_INV)

#均值滤波
blur = cv.blur(img,(3,3))

#高斯滤波
aussian = cv.GaussianBlur(img,(5,5),1)

#中值滤波
median = cv.medianBlur(img,5)

#横着拼接图片
res1 = np.hstack((blur,aussian,median))

#竖着拼接图片
res2 = np.vstack((blur,aussian,median))

#两个图像的矩阵数值分别相加,溢出的和255取余就是新的矩阵的值
cv.add(imgHUTAO,img_HUTAO1)

'''想要相加必须保证尺寸是一样的,下面的就是修改尺寸'''
imgHUTAO = cv.resize(imgHUTAO,(1151,770))

'''两张图像所占的比例,最后的是提取量'''
res = cv.addWeighted(imgHUTAO,0.6,imgSHENLI,0.6,0)

'''resize的第二种用法'''
res = cv.resize(imgHUTAO,(0,0),fx = 3,fy=1)#0,0是不指定数值,后面的是倍数

 # 横竖卷积矩阵
kernel = np.ones((2, 2), np.uint8) 

#腐蚀
erosion = cv.erode(thresh1, kernel, iterations=1)  # 迭代次数(就是腐蚀几次)

# 膨胀
dilate = cv.dilate(erosion, kernel, iterations=1)

# 开运算(先腐蚀在膨胀)
opening = cv.morphologyEx(thresh1, cv.MORPH_OPEN, kernel)

# 闭运算(先膨胀再腐蚀)  黑底白字的话用先腐蚀在膨胀,白底黑字的话先膨胀再腐蚀
closing = cv.morphologyEx(thresh1, cv.MORPH_CLOSE, kernel)

# 梯度提取 梯度 = 膨胀-腐蚀(内部先膨胀之后再腐蚀做差)
gradient = cv.morphologyEx(tidu, cv.MORPH_GRADIENT, kernel)

# 礼帽与黑帽
# 礼帽 = 原始输入-开运算结果
# 黑帽 = 闭运算-原始输入

# 顶帽:得到噪声图像
tophat = cv.morphologyEx(thresh1, cv.MORPH_TOPHAT, kernel)

# 黑帽:得到图像中的空洞或小点
blackhat = cv.morphologyEx(thresh1, cv.MORPH_BLACKHAT, kernel)










你可能感兴趣的:(OpenCV,Python,机器视觉,c++,c语言,开发语言)