OpenCV图像识别实战 第二节 opencv-python基本编程(2)

接着前面那篇文章,继续讲解opencv-python的基本编程操作

目录

1.图像阈值的处理

2.图像平滑处理

3.图像形态学操作

 4.梯度计算

5.canny边缘检测算法

 6.图像轮廓检测方法

7.模板匹配

8.金字塔的制作方法

1.图像阈值的处理

格式 ret,dst = cv2.threshold(src,thresh,maxval,type) 

括号中src为输入图像,只能是灰度图:dst为输出图;thresh为阈值;maxval为当像素超过阈值(或者小于阈值,由type决定),所赋予的值;

import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取下我的图片(eye)
img = cv2.imread("eye.png")
cv2.imshow('img',img)
cv2.waitKey(1000)
#阈值处理
ret, thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)  #超过阈值部分取最大值,否则取o
ret, thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)  #上面的反转(INV)表示反转
ret, thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)  #大于阈值部分设为阈值,否则不变
ret, thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)  #大于阈值部分不改变,否则为0
ret, thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)  #上面的反转
#展示结果
cv2.imshow('1',thresh1)
cv2.waitKey(1000)
cv2.imshow('2',thresh2)
cv2.waitKey(1000)
cv2.imshow('3',thresh3)
cv2.waitKey(1000)
cv2.imshow('5',thresh4)
cv2.waitKey(1000)
cv2.imshow('5',thresh5)
cv2.waitKey(1000)

结果

2.图像平滑处理

 

#图像平滑处理
# 1.均值滤波
blur = cv2.blur(img, (3,3))  #(3,3)表示选取像素点周围3x3范围的矩阵处理,一般为奇数

# 2.方框滤波 (基本和均值一样,可以选择归一化)
box = cv2.boxFilter(img,-1,(3,3),normalize=True)   # -1 表示一致性 ,若 normalize=False 则不符合的像素值会为255

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

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

#展示全部图像
res = np.hstack((blur,aussian,median))
cv2.imshow('median vs average', res)
cv2.waitKey(0)
cv2.destroyWindow()
3.图像形态学操作

腐蚀操作及膨胀操作

# 图像形态学操作
import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("pic1.png")
cv2.imshow('img',img)
cv2.waitKey(1000)
img2 = cv2.imread("pic2.png")
cv2.imshow('img2',img2)
cv2.waitKey(1000)

# 腐蚀操作
#kernel = np.ones((3,3),np.uint8) #设定kernel为一个核
#erosion = cv2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值