opencv图像的滤波

opencv图像的滤波

import cv2
import numpy as np
##图像的缩放
#resize(scr,dsize[,dst[,fx[,fy[,interpolation]]]])   scr-原始图像路径,dsize-缩放大小元组表示()
# a=cv2.imread("C:\\Users\\25644\\Desktop\\cb.jpg",cv2.IMREAD_UNCHANGED)
# rows,cols,chn=a.shape    #返回行列,通道。
# b=cv2.resize(a,(200,100))     # 图像缩小至(列200  行 100)或者使用元组size=(200,100)
# c=cv2.resize(a,(round(cols*1.5),round(rows*1.2)))  #先列后行,计算未必是整数,所以需要四舍五入
# d=cv2.resize(a,None,fx=1.2,fy=0.5)
# cv2.imshow("original",a)
# cv2.imshow("resize200-100",b)
# cv2.imshow("resize1*1.5-1.2",c)
# cv2.imshow("fx*1.2--fy*0.5",d)
# cv2.waitKey()
# cv2.destroyAllWindows()

#图像的翻转
#函数dst=cv2.flip(scr,flipcode)。scr-原始图像路径
#flipcode--翻转模式,flipcode==0以x轴为对称轴翻转,flipcode》0以y轴为对称轴翻转
#flipcode《0以x,y轴为对称轴同时翻转
# a=cv2.imread("C:\\Users\\25644\\Desktop\\cb.jpg",cv2.IMREAD_UNCHANGED)
# b=cv2.flip(a,0)                           #沿X轴翻转
# c=cv2.flip(a,1)                                      #沿Y轴翻转
# d=cv2.flip(a,-1)                     #沿X,Y轴翻转
# cv2.imshow("a",a)
# cv2.imshow("flip-x",b)
# cv2.imshow("flip-y",c)
# cv2.imshow("flip-xy",d)
# cv2.waitKey()
# cv2.destroyAllWindows()

#阈值分割 threshold
#retval,dst=cv2.thershould(src,thresh,maxval,type).retval-阈值和thresh一致,dst-处理图像
#src原图像,thresh-阈值分割的阈值(一般取127),maxval-最大值(处理后的值),type-阈值分割的类
# a=cv2.imread("C:\\Users\\25644\\Desktop\\cb.jpg",cv2.IMREAD_UNCHANGED)
# b=cv2.cvtColor(a,cv2.COLOR_BGR2GRAY)
# #THERSH_BINARY-指二进制阈值化,阈值r=127.小于阈值127的像素,取为零;大于等于阈值127的取为255
# r,b1=cv2.threshold(b,127,220,cv2.THRESH_BINARY)
# #THRESH_binary_inv-指反二阈值化,r=127。小于阈值127的像素,取为255;大于等于127的取为零
# r,b2=cv2.threshold(b,127,255,cv2.THRESH_BINARY_INV)
# #thresh_trunc-指截断阈值化,r=127。大于阈值的像素点处理为阈值,小于阈值的不便
# r,b3=cv2.threshold(b,127,255,cv2.THRESH_TRUNC)
# #THRESH_TOZERO_INV-指反阈值化0,r=127。大于阈值的像素点处理为0,小于小于阈值的不便。
# r,b4=cv2.threshold(b,127,255,cv2.THRESH_TOZERO_INV)
# #THRESH_TOZERO-阈值化为0,r=127。大于等于阈值的像素点不变,小于阈值的处理为0
# r,b5=cv2.threshold(b,127,255,cv2.THRESH_TOZERO)
# r,b1=cv2.threshold(b,127,220,cv2.THRESH_BINARY)           #THERSH_BINARY-指二进值阈值化
# r,b2=cv2.threshold(b,127,255,cv2.THRESH_BINARY_INV)         #THERSH_BINARY_INV-指反二值阈值化
# r,b3=cv2.threshold(b,127,255,cv2.THRESH_TRUNC)             #THERSH_TRUNC-指截断阈值化,
# r,b4=cv2.threshold(b,127,255,cv2.THRESH_TOZERO_INV)          #THERSH_TOZERO_INV-指反阈值化为0
# r,b5=cv2.threshold(b,127,255,cv2.THRESH_TOZERO)            #THERSH_TOZERP-阈值化为0
# cv2.imshow("a",a)
# cv2.imshow("b",b)
# cv2.imshow("b1-rf",b1)
# cv2.imshow("b2",b2)
# cv2.imshow("b3",b3)
# cv2.imshow("b4",b4)
# cv2.imshow("b5",b5)
# cv2.waitKey()
# cv2.destroyAllWindows()

#图像滤波
a=cv2.imread("C:\\Users\\25644\\Desktop\\cb.jpg",cv2.IMREAD_UNCHANGED)
f0=cv2.blur(a,(1,1))   #均值滤波,a-原始图像,核-元组表示(5,5)即5行5列
#方框滤波,a-原始图像;目标图像深度,通常为-1,表示与原始图像一致;
#核大小:normalize-是否对目标图像进行归一化处理,值为True表示归一化处理与均值滤波一致(为True时该)
#Normaalze为False表示不归一化处理,求周围像素点的和,易发生溢出
f1=cv2.boxFilter(a,-1,(1,1),normalize=0)  #方框滤波
#高斯滤波,让临近像素值具有更高的重要度,福州微像素计算加权平均值,较近的像素具有较大的权值
# dst=cv2.GaussianBlur(a,(1,1),0)   scr-源文件,ksize-核大小(n,n)必须为奇数
#sigmaX-x方向方差,控制权重,一般取0
f2=cv2.GaussianBlur(a,(1,1),0)
#中值滤波。让领进的像素按大小排序,取排序像素中位于中间位置的值作为中值滤波后的像素值
#dst=cv2.medianBlur(src,ksize)      #src-源文件,kksize-核大小,比1大的奇数
f3=cv2.medianBlur(a,1)
cv2.imshow("a",a)
cv2.imshow("f0",f0)
cv2.imshow("f1",f1)
cv2.imshow("f3",f3)
# cv2.imshow("b4",b4)
# cv2.imshow("b5",b5)
cv2.waitKey()
cv2.destroyAllWindows()``

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值