#图像的缩放操作 #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()