基于opencv的图像预处理

1.图像翻转(图像镜像旋转)

cv2.flip(img,flipcode) ##    img,想要翻转的图片;flipcode,指定翻转类型

flipcode >0,水平翻转;flipcode=0,垂直翻转;flipcode<0,水平加垂直翻转

2.图像的仿射变换

特点:保持直线,保持平行,比例不变性,不保持角度和长度

基本的仿射变换类型:旋转,剪切,平移,缩放

仿射变换函数:cv2.warpaffine(img,m,dsize)  ## img,想要仿射变换的图像;m,仿射变换的矩阵;dsize,得到图像的尺寸。

(1)旋转

cv2.getRotationMatrix2D(center,angle,scale)函数:

center:旋转中心

angle:旋转角度

scale:缩放比例

作用:用于获得旋转矩阵m=cv2.getRotationMatrix2D(center,angle,scale)

cv2.warpaffine(img,m,dsize)

(2)平移

平移矩阵:m=[[1,0,tx],[0,1,ty]]

cv2.warpaffine(img,m,dsize)

(3)缩放

缩放矩阵:m =[[sx,0,0],[0,sy,0]]

cv2.warpaffine(img,m,dsize)

  (4)  剪切

剪切矩阵:m = np.float32([[1,shy,0],[shx,1,0]])

cv2.warpaffine(img,m,dsize)

3.插值方法

(1)最近邻插值法  CV2.INTER_NEAREST,最快速

(2)双线性插值法 CV2.INTER_LINEAR,最常用

(3)像素区域插值法 cv2.INTER_AREA

(4)双三次插值法 cv2.INTER_CUBIC

(5)Lanczos插值法  cv2.INTER_LANCZOS4

总结:最近邻插值的计算速度最快,但是可能会导致图像出现锯齿状边缘和失真,效果较差。双线性插值的计算速度慢一点,但效果有了大幅度的提高,适用于大多数场景。双三次插值、Lanczos插值的计算速度都很慢,但是效果都很好。

在OpenCV中,关于插值方法默认选择的都是双线性插值,且一般情况下双线性插值已经能满足大部分需求。

4.边缘填充

(1)边界复制 BORDER_REPLICATE

边界复制会将边界处的像素值进行复制,然后作为边界填充的像素值。

(2)边界反射 BORDER_REFLECT

(3)边界反射101  BORDER_REFLECT_101

(4)边界常数  BORDER_CONSTANT

(5)边界包裹  BORDER_WRAP

5.图像矫正(透视变换)

透视变换矩阵M=getPerspectiveTransform(src,dst)

src:原图像上需要进行透视变化的四个点的坐标,这四个点用于定义一个原图中的四边形区域。

dst:透视变换后,src的四个点在新目标图像的四个新坐标。

透视变换函数:cv2.warpPerspective(src, M, dsize, flags, borderMode)

src:输入图像。

M:透视变换矩阵。这个矩阵可以通过getPerspectiveTransform函数计算得到。

dsize:输出图像的大小。它可以是一个Size对象,也可以是一个二元组。

flags:插值方法的标记。

borderMode:边界填充的模式。

6.色彩空间的转换

OpenCV中,图像色彩空间转换是一个非常基础且重要的操作,就是将图像从一种颜色表示形式转换为另一种表示形式的过程。通过将图像从一个色彩空间转换到另一个色彩空间,可以更好地进行特定类型的图像处理和分析任务。常见的颜色空间包括RGB、HSV、YUV等。

色彩空间转换的作用:提高图像处理效果,节省计算资源。

颜色加法:cv2.add(img1,img2)

颜色加权加法:cv2.addWeighted(src1,alpha,src2,deta,gamma) 

src1src2:输入图像。

alphabeta两张图象权重。

gamma:亮度调整值。

gamma > 0,图像会变亮。gamma < 0,图像会变暗。gamma = 0,则没有额外的亮度调整。

rgb转hsv: cv.cvtColor(img, cv.COLOR_BGR2HSV)

rbg转灰度:cv.cvtColor(cat, cv.COLOR_BGR2GRAY)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值