opencv学习笔记3——图像缩放,翻转和阈值分割

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

  

 

 图像的阈值分割:

opencv学习笔记3——图像缩放,翻转和阈值分割

五种阈值分割方法 (分别对应上图的2~6):(主要是为了对灰度图像去噪)

  1. 二值阈值化:将大于阈值的像素置位设置的最大值,小于的设为0
  2. 反二值阈值化:将大于阈值的像素置为0,小于的置为255
  3. 截断阈值化:大于阈值的像素置为阈值,小于的不变
  4. 阈值化为0,:将大于阈值的置为0,小于的不变
  5. 反阈值化为0:将小于阈值的置为0,大于的不变

opencv学习笔记3——图像缩放,翻转和阈值分割

opencv学习笔记3——图像缩放,翻转和阈值分割

opencv学习笔记3——图像缩放,翻转和阈值分割

opencv学习笔记3——图像缩放,翻转和阈值分割

opencv学习笔记3——图像缩放,翻转和阈值分割

opencv学习笔记3——图像缩放,翻转和阈值分割

(以上图片结果是按顺序排列的。。。。。。)

#图像的阈值分割         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()
上一篇:机器人的运动范围


下一篇:OpenCV-轮廓发现