OpenCV
肥宅_Sean
在UCB,Stanford各做过一段时间的RA。去牛津访学过一段时间。
现在在某家头部量化当研究员。
个人站: https://seanquant.github.io/
展开
-
【解决方案】OpenCV配置【Win10+VS2017】(本人于2018年3月30日完成)
话说,这个大概是我目前遇到配置起来最麻烦的东西了。不过,也许就是这样的学习成本比较高。所以才会让懂CV的身价比较高吧? hhh写上具体的完成时间,主要是担心自己的配置教程给过了比较长时间的朋友们带来困扰第一步,OpenCV官网下载OpenCV。下载地址: https://opencv.org/releases.html 点击之后,选择Win Pack。下载好了之后。...原创 2018-03-31 14:07:23 · 3571 阅读 · 5 评论 -
opencv将整个图片BGR通道的某个通道进行修改
简述将整个图变绿。。。代码import cv2img = cv2.imread('Desktop.jpg')img[:, :, 1] = 255cv2.imshow('s', img)while cv2.waitKey(1) != ord('q'): continue原创 2018-07-07 16:02:52 · 2114 阅读 · 0 评论 -
SURF角点检测(python)
简述算是SIFT算法的改进算法。原图算法图代码import cv2imgpath = '5.jpg'img = cv2.imread(imgpath)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)surf = cv2.xfeatures2d.SURF_create(5000)keypoints, descri...原创 2018-07-25 18:18:21 · 2041 阅读 · 1 评论 -
ORB特征匹配(python)
输入的两个图输出图片虽然感觉有点不太准。代码import cv2from matplotlib import pyplot as pltimg1 = cv2.imread('6.jpg', cv2.IMREAD_GRAYSCALE)img2 = cv2.imread('7.jpg', cv2.IMREAD_GRAYSCALE)orb = cv2.ORB_c...原创 2018-07-25 19:11:53 · 9774 阅读 · 6 评论 -
FLANN特征匹配(Python)
输入图片算法输出图可以看到,这里的算法效果比之前的ORB算法要好很多了! 可以点击来访问一下,就知道差别了~ ORB特征匹配(python)代码import cv2from matplotlib import pyplot as pltqueryImage = cv2.imread('6.jpg', 0)trainingImage = cv2.imread...原创 2018-07-25 22:02:24 · 6935 阅读 · 7 评论 -
FLANN单应性(python实现)
算法效果图相比于之前的FLANN,这里还标出了对应的图形。 (大家也可以自己拍一些照片来试试效果)代码import cv2from matplotlib import pyplot as pltimport numpy as npMIN_MATCH_COUNT = 10img1 = cv2.imread('6.jpg', 0)img2 = cv2.imread('7...原创 2018-07-26 08:11:10 · 1927 阅读 · 0 评论 -
opencv-Canny边缘检测(Python)
Canny边缘检测在Opencv中却使用起来非常方便。在学习完书本上的内容之后做的笔记,目前还没有开始看算法:高斯滤波器对图像进行区在计算梯度在边缘上使用非最大抑制(NMS)在检测到的边缘上使用双阈值去除假阳性分析所用的边缘以及其之间的连接效果原图: 算法效果图:使用的生成代码:import cv2img = cv2.imread('2.jpg...原创 2018-07-20 19:35:56 · 5191 阅读 · 0 评论 -
摄像头动态锁定(Python)
简述运行下面代码,就是先获取一张图,并设置为背景。 之后,再得到的图,就视为一个个帧。获取的方法,都是先将整体图变成灰色,之后再做一个高斯模糊。(背景也是要做同样的处理)之后,再求一个差别的绝对值。 再来做一个阈值的变换(这里采用的是大于25,就变成黑色)之后,再做一个膨化处理。 再画一个外部边界。再根据这些外部边界的中心点,来计算出对应的矩阵,然后画好这个矩形(多个)...原创 2018-07-26 14:08:49 · 1421 阅读 · 0 评论 -
录取5秒钟的KNN取景效果gif(Opencv) Python实现
简述录5秒钟 被取景的效果。效果代码import cv2cap = cv2.VideoCapture(0)fps = 30size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))fourcc = cv2.VideoWriter_fourcc(*"I4...原创 2018-07-26 20:21:15 · 607 阅读 · 0 评论 -
动态锁定(每个帧特征捕捉实现)Python
简述下面中cap的内容选的是0,表示启动摄像头0(如果只有一个摄像头的话,就直接找到对应的那个)。注释部分,其实是背景提取后的效果,或者是提取之后的再做阈值的处理后的图片代码import cv2cap = cv2.VideoCapture(0)bs = cv2.createBackgroundSubtractorKNN(detectShadows=True)while T...原创 2018-07-27 09:01:51 · 1854 阅读 · 0 评论 -
摄像头监控视频传输实现(C++)
配置这里采用的是 VS2017之前写过一个Python的版本https://blog.csdn.net/a19990412/article/details/80930725首先得先下载一下opencv,然后简单配置一下。别担心,这个步骤操作就点击下三下鼠标就好了(但是如果是想换一个安装路径什么的,可能会多一点点的 不过基本上非常简单。)根据https://blog.csdn.net/a...原创 2018-09-28 00:36:23 · 25078 阅读 · 58 评论 -
【opencv】边缘提取或通过二值图片提取对应的三维图像(python)
简述原图二值图(经过膨化处理)提取出来的图片代码实现import cv2img = cv2.imread('corgi.jpg')data = (150, 150)imgCanny = cv2.Canny(img, *data)# 创建矩形结构g = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 7))# ...原创 2019-01-22 22:12:07 · 3226 阅读 · 7 评论 -
img.item()跟img[x,y]
简述首先,cv2.imread()读取的图片默认情况下为彩图(三管道图片) 所以,在定位到对应(x,y)(x,y)(x, y)像素点上的时候,得到的就是三维向量如下代码代码import cv2img = cv2.imread('Desktop.jpg')for i in range(3): print(img.item(150, 120, i), end=' ')...原创 2018-07-07 15:54:23 · 5825 阅读 · 0 评论 -
图像阈值处理cv2.threshold()函数(python)
内容cv2.threshold()函数:在opencv中比较常用,但一开始不是很理解是什么意思。 下面是官方文档中给的解释 Python: cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst在其中:src:表示的是图片源thresh:表示的是阈值(起始值)maxval:表示的是最大值type:表...原创 2018-07-23 18:26:48 · 110937 阅读 · 9 评论 -
Python3远程监控程序实现
简述一开始觉得这个很有趣,然后就想来做一个来玩一下使用语言: Python3使用工具:opencv视频监控 + socket数据传输技术程序检验: 这里我考虑了一下,发现还是没有必要实现封装成可执行文件。还是直接就放代码吧。(先放代码,以后再做解释) 本程序,经过本人修改,保证可以使用使用要求: Sender代码必须要在一台有摄像头的电脑上运行起来。然后把数据编...原创 2018-07-05 17:42:41 · 7749 阅读 · 1 评论 -
opencv-contrib-python安装
简述在书上看到需要安装类似的包,结果网上的教程解释了半天 我也觉得比较迷糊。 然后直接复制了网上的一个命令之后,然后用google,查了下就知道了下面的结果opencv-contrib-python 3.4.1.15上面的这个库,安装就好了去到PYPI上查了下,上面的这个库,通过下面的这个命令就可以安装了pip install opencv-contrib-python...原创 2018-07-05 21:52:07 · 80941 阅读 · 21 评论 -
opencv-python将彩色图片变回灰色图片
简述就是在读取的过程中,添加一个参数(意思是,将图片作为灰色数据进行加载)代码import cv2image = cv2.imread('Desktop.jpg', cv2.IMREAD_GRAYSCALE)cv2.imwrite('Desktop.jpg', image)探索之后,我们存储了一张灰色图片,一张原图之后,再做处理import cv2ima...原创 2018-07-05 22:22:21 · 7806 阅读 · 0 评论 -
opencv生成随机图(随机彩图,随机灰图)
简述当管道数为3的时候就是彩图了 默认为1的时候就是灰图代码import cv2import numpyimport osrandomByteArray = bytearray(os.urandom(120000))flatNumpyArray = numpy.array(randomByteArray)RandomColor = flatNumpyArray.re...原创 2018-07-05 22:51:14 · 2554 阅读 · 2 评论 -
高滤波器opencv(Python)
高滤波器(HPF)检测图像的某个区域,然后根据像素与周围像素的亮度差来提升该像素的亮度的滤波器。数值上,一般为一个核(也是一个矩阵)效果原图:经过一个核来进行滤波之后,结果是 先找到原图像的高斯噪声(之后作差):其实可以看出来,高斯招生的那个效果会更好一点(主要是线更粗,说明准确率更高。但是也导致了边角的那个箭尾没有找到)代码下面代码中的1.p...原创 2018-07-18 20:34:34 · 774 阅读 · 0 评论 -
opencv imencode跟imdecode函数jpg(python)
经典用法_, img_encode = cv2.imencode('.jpg', img, img_param)img是一张图片文件(在opencv中就是一个numpy的多维矩阵而已)img_param是压缩参数。这个是我们自己设置的。img_param = [int(cv2.IMWRITE_JPEG_QUALITY), img_fps]img_fps 是一个整数cv2....原创 2018-07-06 14:21:07 · 9353 阅读 · 3 评论 -
用GrabCut进行前景检测(对书中代码进行改进)Python
GrabCut该算法,在opencv中很容易就可以使用。通过对于一开始取定的矩阵来做来模拟。 (这个我们可以通过调整这个点的以及对应的矩阵大小来调整效果)下面就是算法提取出来的图像,以及原图 下面这就是原图(就是代码的输入图片)代码import cv2import numpy as npfrom matplotlib import pyplot as p...原创 2018-07-24 13:15:20 · 2198 阅读 · 0 评论 -
(特征检测)检测角点opencv--python
检测角点检测角点是特征检测的一种方法。 (所谓特征检测,就是检测有意义的东西) 下面代码中,使用cornerHarris来识别角点。关键代码:dst = cv2.cornerHarris(gray, 2, 23, 0.04)含义解释: 第一个参数,放的是一张灰色的图片第二个参数,表示的是邻近的块大小。第三个参数,限制Sobel算子的中孔(aperture).Sob...原创 2018-07-25 09:57:18 · 1797 阅读 · 0 评论 -
【解决方案】module 'cv2.cv2' has no attribute 'xfeatures2d'
问题在学习opencv的过程中使用了SIFT的时候,发现书上的代码用不了。在stackoverflow上看了一些之后,找到了解决方案解决方法安装好 opencv-contrib-python这个库 可以根据下面的这个博客来安装这个库。 opencv-contrib-python安装安装完成之后就可以使用了~...原创 2018-07-25 10:11:25 · 46596 阅读 · 16 评论 -
【opencv】边缘高斯模糊(canny+dilate+GaussianBlur)Python实现
简述在Cartoon GAN的实现中提到了这种思想。但是在网上没有找到对应的实现,就自己研究了一波。处理思路Canny边缘提取用dilate做膨化,用一个粗颗粒,再用一个细颗粒粗颗粒的膨化结果用于提取原图像,之后,再做高斯模糊细颗粒的膨化结果用于定位覆盖掉原图像的结果,将边缘部分贴回去效果展示处理前处理后代码import cv2img = cv...原创 2019-01-22 23:06:31 · 7851 阅读 · 0 评论