#图像的缩放操作
#cv.resize(src,dsize,dst=None,,fx=None,fy=None,interpolation=None)
#src->原图像,dsize->目标图像的大小(列*行(和其他API不同),fx->相对于原图的水平轴比列,fy->相对于原图的竖直轴的比例
#interpolation—>插入方式 )(一般dsize和fxfy只设其一,会自动推算另一个)
image = cv.imread("E:/pictures/1.jpeg",cv.IMREAD_UNCHANGED)
rows,cols,chn = image.shape
image2 = cv.resize(image,(round(cols*1),round(rows*1.2))) #cv.round()为四舍五入取整函数
cv.imshow("orginal",image)
cv.imshow("resize",image2)
cv.waitKey()
cv.destroyAllWindows()
#图像翻转 cv.flip(src,flipCode) src->原始图像 filpCode->翻转方式
#翻转方式有三种 0是水平翻转 >0表示绕垂直轴翻转 <0表示绕原点翻转 (只是这样说其实并没有xy坐标轴 :))
image = cv.imread("E:/pictures/1.jpeg")
image2 = cv.flip(image,-1)
#image3 = cv.flip(image,0)
#image4 = cv.flip(image,1)
cv.imshow("orginal",image)
cv.imshow("flip",image2)
cv.waitKey()
cv.destroyAllWindows()
图像的阈值分割:
五种阈值分割方法 (分别对应上图的2~6):(主要是为了对灰度图像去噪)
- 二值阈值化:将大于阈值的像素置位设置的最大值,小于的设为0
- 反二值阈值化:将大于阈值的像素置为0,小于的置为255
- 截断阈值化:大于阈值的像素置为阈值,小于的不变
- 阈值化为0,:将大于阈值的置为0,小于的不变
- 反阈值化为0:将小于阈值的置为0,大于的不变
(以上图片结果是按顺序排列的。。。。。。)
#图像的阈值分割 retval,dst = cv.threshold(src,thresh,maxval,type)
#retval 阈值 dst 结果图 ,src 原图 thresh 阈值 ,maxval 最大值 ,type 分割方式
img = cv.imread("E:/pictures/lena.jpg",cv.IMREAD_GRAYSCALE)
r1,b1 =cv.threshold(img,128,255,cv.THRESH_BINARY) #二值阈值化 (将亮的变为最大,暗的变为0)
r2,b2 =cv.threshold(img,128,255,cv.THRESH_BINARY_INV) #反二值阈值化 (将亮的变为0,暗的变为最大)
r3,b3 =cv.threshold(img,128,255,cv.THRESH_TRUNC) #截断阈值化 (将亮的变为阈值)
r4,b4 =cv.threshold(img,128,255,cv.THRESH_TOZERO) #阈值化为0 (将亮的变为0,暗的不变)
r5,b5 =cv.threshold(img,128,255,cv.THRESH_TOZERO_INV) #反阈值化为0 (将暗的变为0,亮的不变)
cv.imshow("orginal",img)
cv.imshow("BINARY",b1)
cv.imshow("BINARY_INV",b2)
cv.imshow("TRUNC",b3)
cv.imshow("TOZERO",b4)
cv.imshow("TOZERO_INV",b5)
cv.waitKey()
cv.destroyAllWindows()