OpenCv学习笔记一

一、设置感兴趣区域

第一步设置区域四个顶点,通过数组

vertices = np.array([[[x1, y1], [x1, y2], [x2, y1], [x2, y2]]], dtype=np.int32)

第二步创建基于原图灰度图的mask图

mask = np.zeros_like(gray_img)

第三步使用 fillpoly 来绘制 mask

cv2.fillPoly(mask, vertices, fill_color)
# fill_color通道数要与原图一样

python+opencv填充图像不规则区域:fillPoly和fillConvexPoly区别、半透明填充方法

第四步使用ROI异或运算合并图片

cv2.bitwise_and(img, mask)

cv2.bitwise_and()

二、颜色阈值提取感兴趣区域

第一步设置提取图像的范围

ysize,xsize = img.shape[:2]
color_select = np.copy(img)

第二部设置RGB阈值

red_threshold = 200
green_threshold = 200
blue_threshold = 200
rgb_threshold = [red_threshold, green_threshold, blue_threshold]

第三步设置布尔型数组,低于阈值为True

thresholds = (img[:,:,0] < rgb_threshold[0]) |\
             (img[:,:,1] < rgb_threshold[1]) |\
             (img[:,:,2] < rgb_threshold[2])

第四步将小于阈值的区域RGB值设置为白

color_select[thresholds] = [0,0,0]

三、最小二乘法拟合曲线

最小二乘法多项式曲线拟合原理与实现

按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法。

概念

最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)

原理

给定数据点pi(xi,yi),其中i=1,2,…,m。求近似曲线y= φ(x)。并且使得近似曲线与y=f(x)的偏差最小。近似曲线在点pi处的偏差δi= φ(xi)-y,i=1,2,...,m。

两种方法实现最小二乘法拟合

第一种:python中scipy.optimize.leastsq(最小二乘拟合)用法

第二种:使用polyfit通过点坐标拟合出曲线函数,再使用polyval计算坐标numpy-poly1d、polyfit、polyval

霍夫线段检测

霍夫变换(Hough)

HoughLine是标准的霍夫变换,它可以检测出直线的位置和方向,但不能检测出直线的长度。

HoughLinesP函数是改进的霍夫变换,它可以检测出直线的位置、方向和长度。它返回的是直线的起点和终点坐标,可以直接用于绘制直线。

cv2.HoughLines() 和 cv2.HoughLinesP()原理和代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值