(img_cat + img_cat2) [ :5, :, 0]-----------np的+,超出255取超出部分
cv2.add(img_cat,img_cat2) [:5,:,0]---------与np的+不同,超出255就取255
ret, dst = cv2.threshold(src, thresh, maxval, type)
src: 输入图,只能输入单通道图像,通常来说为灰度图
thresh:一般取127和255
maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
type:二值化操作的类型,包含以下5种类型:
cv2.THRESH_BINARY 超过阈值部分取maxval(最大值127或255,否则取0
cv2.THRESH_BINARY_INV THRESH_BINARY的反转
cv2.THRESH_TRUNC 大于阈值部分设为阈值(127或255),否则不变
cv2.THRESH_TOZERO 大于阈值部分不改变,否则设为0
cv2.THRESH_TOZERO_INV THRESH_TOZERO的反转
return返回值
dst: 输出图
thresh: 阈值
黑点叫椒噪音,白的叫盐噪音,都有叫椒盐
cv2.blur # 均值滤波:简单的平均卷积操作
cv2.boxFilter # 方框滤波:基本和均值一样,可以选择归一化
cv2.GaussianBlur # 高斯滤波:高斯模糊的卷积核里的数值是满足高斯分布,相当于更重视中间的
cv2.medianBlur # 中值滤波:相当于用中值代替
————————————————
版权声明:本文为CSDN博主「华尔街的幻觉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_29950703/article/details/107651267
越界相当于大于255取255
vsyack:竖的拼接
hstack:横的拼接
import cv2
import numpy as np
img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
erosion = cv2.erode(img,kernel,iterations = 1) # 迭代次数越多 和 kernel越大 效果越明显
dilate = cv2.dilate(img,kernel,iterations = 1)
res = np.hstack((img,erosion,dilate))
cv_show('dige and erode and dilate',res)
1.Sobel算子:分X和Y轴
cv2.Sobel(src, ddepth, dx, dy, ksize) 进行sobel算子计算
参数说明:src表示当前图片,ddepth表示图片深度,这里使用cv2.CV_64F使得结果可以是负值, dx表示x轴方向,dy表示y轴方向, ksize表示移动方框的大小
cv2.convertScalerAbs(src) 取绝对值
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)# 1,0: 表示只算水平的,不算竖直的
#分别计算x和y,再求和,融合的较好,不建议直接计算
2.Scharr算子
用法基本相同,Scharr算子比Sobel算子更敏感,捕获更多细节,更丰富
3.Laplacian算子
laplacian = cv2.Laplacian(img,cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)
今天的学习就到这啦!