- 博客(220)
- 资源 (16)
- 收藏
- 关注
原创 华为高斯数据库招聘
1.负责数据库系统内核模块设计,包括查询引擎,执行引擎和存储引擎特性设计,性能调优的工作。1.计算机相关专业,熟练掌握一中编程语言,c/c++/Java等语言不限。2.基于操作系统内核技术构建数据库高性能,高可用,软硬协同等核心竞争力。语言不限,专业不限,与业内数据库大佬共事,致力于做数据库行业领军者。4.具备良好的沟通能力,刻苦敬业,有上进心,良好的团队合作精神。西安华为,部门直招数据库开发,测试,维护,hc充足,流程快。3.负责数据库内核相关领域的新技术探索,和关键技术突破。
2024-06-05 16:35:12
350
2
原创 【opencv】【mediapipe】手势检测的有趣玩法
今天学习mediapipe检测手势识别mediapipe还有很多其他很多有趣的应用,后面都是会慢慢学习到的。import cv2import mediapipe as mpimport timecap = cv2.VideoCapture(0)cap.set(3, 1280) # 设置宽cap.set(4, 720) # 设置高mpHands = mp.solutions.hands # 检测手的类# 检测mpHandDetesctor = mpHands.Hands(sta
2022-04-17 11:46:50
4401
原创 《opencv学习》Shi-Tomasi 角点检测
Shi-Tomasi 角点检测 和 Harris 角点检测的很多步骤都是一样的。Harris 角点检测最后会得到一个相似度函数C,这个函数是一个对称矩阵M,可以将对称矩阵分解得到一个P的逆乘以特征值矩阵乘以P的形式(P是特征向量矩阵,正交的)。对于一个角点来说, 随着位置的稍微移动,基本上相似度函数都会变化非常大。如果固定函数E的值,那么后面的式子就是一个椭圆方程。而且M也是个定值,那么就是位置变化量(u, v)才是变化量,也就是说,在某个方向上,移动多少距离,C值就会变多少。移动相同位置,变化的越快
2022-03-27 21:57:03
5928
原创 【opencv学习】Fast算法进行角点检测
今天学习角点检测的一个Fast算法,顾名思义,很快!FAST 算法1: 在图像中选择一个像素点p,得到其灰度值I_p2: 以半径r为半径画圆,覆盖p点周围M个像素点,通常设置r=3,则M=16,这个M个点是周围一圈的点,不是在半径内的哦,沿着半径的外面一圈的点哈!另外说一下,这个16个点的顺序是连续挨着的的,绕着一圈逆时针或者是顺时针定义的。3: 设置一个阈值t,如果这M个像素点内连续存在N个像素点的灰度值在[I_p - t, I_p + t]范围之外,那么这个点就是角点,N一般是12,记住哈,是
2022-03-27 20:58:50
5718
原创 【opencv学习】光流算法以及物体追踪算法(Lucas-Kanade算法)
正所谓的光流估计,就是在视频的前后帧的分析中,能分析出图中的一些object的移动方向和速度,可以做目标追踪使用。Lucas-Kanade算法改进经典的光流估计是Lucas-Kanade 算法,这个算法是基于下列的三个基本假设:也称之为三个约束。1:亮度恒定:同一个像素点随着时间的变化,也就是说同一个像素点在位置变化前后的亮度值基本保持不变。2:小范围运动:随着时间的变化,运动的变化,物体的运动不会产生剧烈的变化。这个情况下,灰度对位置的偏导数就可以近似是3:空间一致性:一个场景上,相临近的一.
2022-03-25 22:46:11
8091
1
原创 【opencv有趣应用】基于MobileNet + SSD的物体检测
今天学习使用另外的模型进行物体检测当前目标检测的算法有很多,如rcnn系列、yolo系列和ssd,前端网络如vgg、AlexNet、SqueezeNet,一种常用的方法是将前端网络设为MobileNet进行特征提取和加速,后端算法为SSD来真正进行目标检测。之前我们学习了使用darknet上的基于coco数据集训练的yolov3模型来搞,这次我们使用在tensorflow上训练的基于coco数据集训练的MobileNet + SSD模型来搞。import cv2import numpy as np
2022-03-20 20:29:05
3580
原创 【opencv有趣应用】测量图像上的特定角度值
今天做一个角度的测量器在图像上如果想测量一个角度,只需要用鼠标选择这个角度的三个点,就能自动测量出这个角度值。这里用到的知识是余弦定理代码如下:import mathimport cv2import numpy as nppoint_list = []img_show_windows = 'show'image_path = 'images/angles.png'def myMouseCallBbackFunc(event, x, y, flags, params_img):
2022-03-20 15:19:57
4884
原创 【opencv有趣应用】opencv + YOLOV3 + COCO数据集的简单应用
谈起深度学习进行目标检测,我们能想到的一个分支就是端到端的YOLO系列。我们之前接触过YOLO,也学习过YOLO,文章如下:https://blog.youkuaiyun.com/qq_29367075/article/details/109269472https://blog.youkuaiyun.com/qq_29367075/article/details/109269477https://blog.youkuaiyun.com/qq_29367075/article/details/109269483因此呢,我们这里只是大
2022-03-19 23:18:11
3228
原创 【opencv学习】Blob检测斑点
今天学习blob的可用于斑点检测,其实这个斑点只是普通的这么叫法,专业点是的Blob是图像中共享某些共同属性(例如灰度值)的一组连接的像素。如下图是今天检测的试验图算法过程是:1:Thresholding(二值化过程):通过对源图像进行阈值化,将源图像转换为若干二值图像,阈值从minThreshold开始。这些阈值通过thresholdStep递增,直到maxThreshold。所以第一个阈值是minThreshold,第二个是minThreshold + thresholdStep,第三个是min
2022-03-13 22:55:12
7019
原创 【opencv学习】给图像加图形注释
今天学习在图像上如何画出一些常见的图形,这将用于图像任务的标注和展示import cv2def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()img = cv2.imread('images/build.jpeg')# =======================================
2022-03-13 21:55:24
3750
原创 【opencv有趣应用】图像拼图
今天学习图像拼图,就有点像拼图游戏那样的import cv2import osdef cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 将一个文件目录下的所有图像文件都列出来filedir = "D:/estimages/image"files = os.listdir(filedir)print
2022-03-12 23:27:03
6789
原创 【opencv有趣应用】二维码和条形码的检测
今天学习下使用opencv进行条形码和二维码的检测import cv2import numpy as npfrom pyzbar.pyzbar import decodedef cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()def detect_draw_qrcode(img): img_
2022-03-12 22:57:54
2525
1
原创 【opencv学习】RANSAC算法在图像拼接中的应用实战
一:单应性变换我们得到两张图像的图像后,可以通过BFMatcher得到匹配的点,其实就是一个暴力搜索来比较最相近的特征点(128维度的向量,求向量的近似度)。通过匹配的多个关键点的配对信息,我们能将图像A转换到图像B的角度和size。这就可以用到单应性变换。通过这个矩阵可以将原始图像A中的关键点变换到图像B,可以看到H矩阵很关键,H矩阵一共有8个未知参数,但是我们已经有大量的匹配的配对的关键点,因此我们可以通过8个式子的方程组求解H,因此至少需要4组配对值即可求解。但是问题存在于,我们得到的匹配的
2022-03-09 22:14:54
4528
1
原创 【opencv学习】SIFT算法的基本使用以及特征匹配
下面我们学习特征点匹配的使用import cv2def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 第一步:先读取俩图片imgA = cv2.imread('images/build.jpeg', 0)imgB = cv2.imread('images/build2.png', 0)#
2022-03-08 23:21:45
2032
原创 【opencv学习】SIFT算法的原理和基本使用
一:SIFT算法的原理我们之前说过了特征的定义:1)我们将图像中的某个特别的区域作为一个特征。特征是图像中有意义的图像区域,该区域具有独特特性或易于识别性。2)角点和高密度区域是很好的特征,而大量重复的区域或低密度区域则不是很好的特征。边缘可将图像分为两个区域,因此也可作为好的特征。3)斑点也是有意义的特征。今天我们来看看SIFT(Scale Invatiant Feature Transform)算法的计算过程我们先来介绍下这个SIFT的思想哈,这个算法是为了检测一张图像的特征,这个特征有啥用
2022-03-08 22:40:45
5207
原创 【opencv学习】基于透视变换和OCR识别的小票识别
本文基于之前学习的透视变换、和OCR识别,做了个简单的小票识别,如下:import cv2import numpy as npfrom PIL import Imageimport pytesseract as tessdsize = (55, 88) # 统一尺度# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止
2022-02-27 21:39:02
5197
3
原创 【opencv 学习】使用tesseract-ocr机芯数字识别
今天学习 tesseract-ocr开源库的使用,这是个开源的能够识别多语言文字的库下面是在Windows上安装的步骤1:下载软件,选择最新的版本安装https://github.com/UB-Mannheim/tesseract/wikiThe latest installers can be downloaded here:tesseract-ocr-w32-setup-v5.0.1.20220118.exe (32 bit) andtesseract-ocr-w64-setup-v5.0.
2022-02-27 19:37:32
2277
原创 【opencv学习】透视变换矩阵
import cv2import numpy as npimport pylab as pltif __name__ == '__main__': # 读取原始图像 im_src = cv2.imread('images/build.jpeg') h, w, c = im_src.shape # 原始图像中物体的四个顶点的信息 pts_src = np.array([(0, 0), (640, 0), (0, 520), (640, 520)], dtype
2022-02-27 17:42:14
1436
原创 【opencv学习】银行卡的识别
今天做一个小项目,运用已经学到的知识,做一个银行卡的识别。银行卡的图像如下这个银行卡是的数字模板是现在我的任务是识别中间的16个数字大致思路是:1:读取模板,获得每个数字的模板信息2:读取银行卡图像,分割出中间16个数字的轮廓信息3:进行图像模板匹配,并在原始图像画出来代码如下:import cv2import numpy as npdsize = (55, 88) # 统一尺度# 展示图像,封装成函数def cv_show_image(name, img): c
2022-02-25 22:42:01
2949
原创 【opencv学习】图像特征检测
import cv2import numpy as npimport matplotlib.pyplot as plt# 什么是特征?# 当你看到芒果图像时,如何识别它是芒果?# 通过分析颜色、形状和质地,你可以说它是芒果。# 用于识别图像的线索称为图像的特征。同样,计算机视觉的功能是检测图像中的各种特征。# 1:特征的定义:# 我们将图像中的某个特别的区域作为一个特征。特征是图像中有意义的图像区域,该区域具有独特特性或易于识别性。# 角点和高密度区域是很好的特征,而大量重复的区域
2022-02-20 12:26:34
3626
1
原创 【opencv学习】单应性变换Homography
import cv2import numpy as npimport pylab as pltif __name__ == '__main__': # 读取原始图像 im_src = cv2.imread('images/build.jpeg') h, w, c = im_src.shape # 原始图像中物体的四个顶点的信息 pts_src = np.array([(0, 0), (640, 0), (0, 520), (640, 520)]) #
2022-02-20 08:27:53
2997
原创 【opencv 学习】仿射变换(图像的旋转、缩放、平移)
import numpy as npimport cv2# 仿射变换的两种方式:# 1、利用变换前后的三个坐标点达到变换目的。# 2、使用旋转角度和缩放倍数来变换。# 可以用矩阵相乘或者向量叠加到矩阵表示的所有操作(旋转、平移(向量叠加)、缩放),这个就是类似于一个矩阵的变换。图像本身就是一个矩阵img = cv2.imread(r'images/build.jpeg', 1)rows, cols, channels = img.shape # h,w,c# 第一部.
2022-02-20 07:45:16
2330
原创 【opencv学习】【hough圆检测】
import cv2import numpy as np# 圆的检测原理# 霍夫梯度法:先确定圆心,再确定半径# 把原图做一次 Canny 边缘检测,得到边缘检测的二值图。# 圆的边缘点切线的垂直方向,也就是梯度方向过圆点,所以我们可以遍历图像的所有点,# 对每个像素点计算梯度,比如Sobel算子,对该直线上的所有像素点进行投票,# 最后选取超过阈值的某个像素点,为了避免选取过多的圆心,# 可以把一个像素点周围相差不大的像素点看做成一个圆心,确定圆心后再计算以改点为圆心的最佳半径# 该方
2022-02-19 23:34:33
1481
1
原创 【opencv学习】【Hough直线检测】
import cv2import numpy as np# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 总流程# 1.获取灰度图像,转成二值图像# 2.canny边缘检测,获取图像边缘信息。减少计算量# 3.获取霍夫直线信息,可以使用HoughLines ..
2022-02-19 01:04:29
2250
原创 【opencv学习】【Harris角点检测】
下面看代码:import cv2import numpy as np# 1.cv2.cornerHarris(img, blocksize, kszie, k) # 找出图像中的角点# 参数说明:# img:是数据类型为float32的输入图像,表示输入的灰度图,# blocksize:我们检测过程中需要一个窗口,这个就是窗口的大小,W(x,y)# kszie:运用Sobel算子求解每个像素的梯度。有Ix和Iy方向的。# k:是角点响应值运算中的α数值,一般推荐是[0.06,...
2022-02-18 23:26:14
663
原创 【opencv学习】【傅里叶变换】【高通滤波器和低通滤波器】
import cv2import numpy as npfrom matplotlib import pyplot as plt# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 高频:图像灰度变化剧烈的部分,一般是边界点# 低频:图像像素变化变化缓慢的部分# 高
2022-02-17 00:19:13
1072
原创 【opencv学习】【运动物体检测】
今天学习运动物体检测一:帧差法捕获摄像头的运动的手import cv2import numpy as np# 如果我们想捕获一些运动的物体,每一帧图像中,不动的部分称之为背景,运动的物体称之为前景# 假如我们的视频捕捉窗口是不动的,比如摄像头放着不动,保证了背景是基本不发生变化的,但是我们怎么捕获前景和背景啊?# 第一部分: 帧差法# 通过前后两帧的差值来捕捉运动的物体(一般用时间t的帧减去时间t-1的帧),超过某个阈值,则判断是前景,否则是背景# 这个方法很简单,但是会带来巨大的噪声(
2022-02-15 00:43:43
8331
4
原创 【opencv学习】【图像直方图和均衡化】
今天学习图像直方图和图像均衡化一:图像直方图import cv2import numpy as npimport matplotlib.pyplot as plt# 图像的直方图,就是统计哪些像素点,或者那一段像素区间的像素的个数# 在opencv中使用的是 calcHist(images, channels, mask, histSzie, ranges)# 参数解析:# images: 一次性可以传入多个图像。传入图像时候是一个list, 用[]括起来,数据类型是 uint
2022-02-14 01:04:15
1155
原创 【opencv学习】【模板匹配】
今天学习模板匹配模板图片目标图像import cv2import matplotlib.pyplot as plt# 模板匹配的原理:# 一个模板图像在目标图像上机芯从左到右从上到下进行滑动,每滑动一个位置就计算匹配度(均方差或者是相关系数等)# 遍历完目标图像后,求出最匹配的未知区域来。# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位
2022-02-14 00:10:01
1345
2
原创 【opencv学习】【轮廓检测】
今天学习轮廓检测方法import cv2import numpy as np# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 边缘检测的函数# cv2.findContours(img, mode, method)# img: 输入图像,为了很高的精确
2022-02-13 17:41:28
2195
原创 【opencv学习】【图像金字塔】
今天简单学习下图像金字塔,说白了就是图像放大缩小的一些方法,但是是等比例的。import cv2import numpy as np# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 图像金字塔,上面的size小,下面的size大# 比如一个图像的shape是(H,W
2022-02-13 14:28:12
124
原创 【opencv学习】【Canny边缘检测】
今天学习下 Canny检测,具体的算法介绍在代码中展示。import cv2import numpy as np# 边缘检测,边缘点的特征就是梯度大,一般非边缘点,梯度就偏小甚至是0# Canny 边缘检测流程:# 1:使用高斯滤波器平滑图像,去除噪声点# 2:计算图像中的每个像素点的梯度和方向,这个方法可以使用Sobel算子X和Y方向得到# 3:应用非极大值抑制(Non-Maximum-suppression),消除一些边缘检测的边缘影响,因为很可能临近的像素点都可能被认为是边
2022-02-13 14:13:22
579
3
原创 【opencv】【图像梯度】
我们来计算图像中各个像素点的梯度我们可以用一阶的Sobel算子和Scharr算子,以及使用二级的Laplace算子,试验如下:原始图像是:一阶算子的梯度计算如下:求图像各个像素点的梯度。上面计算的sobel算子可以近似认为是X和Y方向的梯度,那么总的梯度是:G = (Gx^2 + Gy ^2) ^ 0.5 或者是近似计算成G = |Gx| + |Gy|二阶算子,直接可得到梯度。import numpy as npimport randomimport cv2import matpl
2022-02-13 13:25:04
1465
原创 【opencv学习】【形态学】【腐蚀与膨胀】【开运算与闭运算】【礼帽和黑帽】
一:膨胀和腐蚀原始图像如下:hw.pnghw_inv.png如下展示代码:import numpy as npimport randomimport cv2import matplotlib.pyplot as plt# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindo
2022-02-13 12:26:30
699
原创 【opencv 学习】【常用的图像卷积核】
今天学习不同样式的核对图像的影响基本可以分成高通滤波和低通滤波两种#一些低通滤波器,就是取图像的低频成分,实际上就是把图像弄得模糊/平缓,消除噪音点,如之前学习的均值滤波和高斯滤波。#一些高通滤波器,就是取图像的高频成分,实际上就是把图像进行锐化处理,使图像的边缘信息更加突出,如Sobel算子、Prewitt算子、锐化滤波器等;第一部分:低通滤波器import cv2import numpy as np# 展示图像,封装成函数def cv_show_image(name, img):
2022-02-13 11:04:33
2271
原创 【opencv学习】【图像滤波】
原始图像为:一:给图像增加噪声import numpy as npimport randomimport cv2import matplotlib.pyplot as plt# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()def sp_noise(image,p
2022-02-13 04:58:37
562
原创 【opencv学习】【图像的阈值处理】
import cv2import matplotlib.pyplot as plt# ret, dest = cv2.threshold(src, thresh, maxval, type)# src: 输入图像,只能是单通道的图像,通常就是灰度图像# dst: 输出图像# thresh: 阈值,范围是[0, 255]之间的像素值# maxval: 由type决定的,超过/低于阈值的情况下,赋予的一个值# type: # 几种不同的类型# cv2.THR
2022-02-12 00:33:24
492
原创 【opencv学习】【图像的数值计算操作】
import cv2# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()img_cat = cv2.imread('D:/images/cat.jpg')print(img_cat.shape) # 彩色图像的shape=(H, W, C)img_dog = cv2.i
2022-02-12 00:12:58
3214
原创 【opencv学习】ROI区域和图像填充
一:ROIROI就是region of interest,感兴趣的区域,有时候需要去看看某个特定的区域#!/usr/bin/python# -*- coding: <encoding name> -*-import cv2# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWin
2022-02-08 22:48:46
2577
原创 【opencv学习】【读取图像、视频、摄像头】
今天学习opencv一:读取图像import cv2# 展示图像,封装成函数def cv_show_image(name, img): cv2.imshow(name, img) cv2.waitKey(0) # 等待时间,单位是毫秒,0代表任意键终止 cv2.destroyAllWindows()# 读取彩色图像img = cv2.imread('images/naruto.jpg')img = cv2.imread('images/naruto.jpg',
2022-02-08 21:28:30
2164
每天进步一点点《ML - 基于层次的聚类》.docx
2020-09-26
每天进步一点点《ML - DBSCAN》.docx
2020-09-26
每天进步一点点《ML - K-Means》.docx
2020-09-25
每天进步一点点《ML - 感知机》.docx
2020-09-23
每天进步一点点《ML - 正则化代价函数》.docx
2020-09-23
每天进步一点点《ML - 人工神经网络》.docx
2020-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人