print(img2.shape)
img2=cv2.resize(img2,(396,203))
#注意此句,img.shape的数值时(h,w),而resize需要的输入是(w,h),两者是颠倒的
print(img2.shape)
a=cv2.addWeighted(img,1,img2,0.5,0)
#注意:相加后,像素中加和超过255的值会被置为255
cv_show('a',a)
图像的阈值操作(可实现图像的⼆值化)
函数:ret,dst=cv2.threshold(src,thresh,maxval,type) 1. src:z输⼊图,只能输⼊单通道图像 2. thresh:阈值 3.
maxval:当像素值超过了阈值时的可能的处理⽅式(根据type决定) 4. type:⼆值化操作的类型,包含以下5
中类型 - cv2.THRESH_BINARY:超过阈值部分取maxval(最⼤值),否则取0,图像将被处理成纯黑⾊与纯⽩⾊
的图像; - cv2.THRESH_BINARY_INV:与THRESH_BINARY相反,超过阈值部分取0,低于阈值部分取255,图像
将被处理成纯黑⾊与纯⽩⾊的图像; - cv2.THRESH_TRUNC:⼤于阈值部分设为阈值,否则不变; -
cv2.THRESH_TOZERO:⼤于阈值部分不改变,否则设为0; - cv2.THRESH_TOZERO_INV: 与THRESH_TOZERO相
反,⼤于阈值部分设为0,其余不变。
图像平滑处理
均值滤波函数:dst=cv2.blur(src,ksize)
src:原图像;
ksize:核⼤⼩,核为全为1的矩阵。
原理:核内所有像素的均值,替换核的中⼼元素
特点:核尺⼨越⼤,滤波效果越好,但图像越模糊。 ⽅框滤波函数:
dst=cv2.boxFilter(src,ddepth,ksize,anchor,normalize,borderType)
dst:返回值,表⽰进⾏⽅框滤波后得到的处理结果;
src:需要处理的图像,它能够有任意数量的通道,并能对各个通道独⽴处理。
ddepth:处理结果图像的图像,使⽤-1表⽰与原图像使⽤相同的图像深度。图像深度解释如下: S=有符
号整形,U=⽆符号整形,F=浮点数
CV_8U:8位⽆符号整数(0~255)
CV_8S:8位有符号整数(-128~127)
CV_16U:16位⽆符号整数(0~65535)
CV_16S:16位有符号整数(-32768~32767)
CV_32S:32位有符号整数(-2147483648~2147483647)等
额
外
补
充 C<number_of_channels>:表
⽰图⽚的通道数
1:单通道图像,即灰度图;
2:双通道图像;
3:RGB彩⾊图像:3通道图像;
4:带Alpha通道的彩⾊图像,4通道图像(Alpha通道即透明度通道)。 eg:CV_8UC1:8位⽆符号
整形单通道灰度图。
ksize:滤波核的⼤⼩。滤波核⼤⼩是指在滤波处理过程中所选择的邻域图像的⾼度和宽度。
anchor:锚点,默认值为(-1,-1),表⽰当前计算均值的点位于核的中⼼位置。该值使⽤默认值即
可,在特殊情况下可以指定不同的点做锚点。
normalize:表⽰在滤波时是否进⾏归⼀化,此值为布尔值,1为True,0为False;