![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
yyyzhhhhh
123
展开
-
学习OpenCV-Python——模糊滤波
2D卷积opencv提供了cv2.filter2D()函数来对图像进行卷积操作(图像滤波)。dst = cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])dst:输出图像src:输入图像ddepth:输出图像深度,-1为与原图相同kernel:卷积核anchor:锚点,默...原创 2018-11-20 14:40:39 · 668 阅读 · 0 评论 -
OpenCV-Python——图像轮廓
图像轮廓与边缘的区别:边缘是不连续的,轮廓是连续的,将边缘连接起来,就能构成轮廓。图像轮廓的绘制需要用到两个函数:cv2.findContours()和cv2.drawContours()res,contours,hierarchy = cv2.findContours(image,mode,method)res:处理后的图像contours:返回的轮廓对象数组hierarchy:图像...原创 2018-11-23 01:17:25 · 846 阅读 · 0 评论 -
学习OpenCV-Python——基本概念
Ubuntu下使用Anaconda安装OpenCV3:conda install --channel https://conda.anaconda.org/menpo opencv3图像的表示OpenCV使用numpy的array作为图像的数据结构,但是与主流的RGB结构不同的是,OpenCV采用了BGR的结构,这与历史遗留问题有关。图像的基本属性img.shap...原创 2018-11-18 01:11:52 · 402 阅读 · 1 评论 -
学习OpenCV-Python——图像增强
图像增强图像增强可以分为两种:领域处理技术。对像素点及其周围的点进行处理,即使用卷积核。点处理技术。只对单个像素进行处理。归一化cv2.normalize(src, dst, alpha, beta, norm_type, dtype, mask) → dstsrc: 原图像对象dst: 经过转化后的图像对象alpha: 归一化后灰度像素最小值,一般为0beta: 归一化后灰...原创 2018-11-18 01:12:52 · 9909 阅读 · 1 评论 -
分别用OpenCV-Python和Numpy实现傅里叶变换和逆傅里叶变换
Numpy实现fft = np.fft.fft2(img)将空间域转化为频率域OpenCV实现dft = cv2.dft(np.float32(img),flag=cv2.DFT_COMPLEX_OUTPUT)这个函数与np.fft.fft2(img)实现相同的功能,但要注意先将img转化为float32的格式,flag传入cv2.DFT_COMPLEX_OUTPUT表示输出的是一个复数...原创 2018-11-24 16:31:27 · 5227 阅读 · 1 评论 -
傅里叶分析
作 者:韩 昊知 乎:Heinrich微 博:@花生油工人知乎专栏:与时间无关的故事谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。——更新于2014.6.6,想直接看更新的同学可以直接跳到第四章————我保证这篇文章和你以前...转载 2018-11-24 16:38:07 · 172 阅读 · 0 评论 -
学习OpenCV-Python——视频读写
#0表示读取摄像头,输入视频文件路径可以读取视频文件capture = cv2.VideoCapture(0)ret, frame = capture.read()while ret: #1表示左右翻转,-1表示上下翻转 frame = cv2.flip(frame,1) cv2.imshow('video',frame) ret, frame = captu...原创 2018-11-20 13:57:55 · 194 阅读 · 0 评论 -
MacOS使用homebrew安装OpenCV及遇到的坑
1.安装homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2.安装OpenCVbrew install opencv安装目录为/usr/local/Cellar/opencv3.使用Opencv#include<op...原创 2019-09-28 17:55:51 · 8004 阅读 · 5 评论 -
OpenCV-Python——上采样、下采样与拉普拉斯金字塔
图像金字塔(也叫高斯金字塔):同一图像不同分辨律的子图集合。向下采样的过程:从Gi得到Gi+1的过程:1.对图像Gi进行高斯卷积。2.删除所有行和列。向上采样的过程:从Gi得到Gi-1的过程:1.行和列扩展为原来的两倍,用0填充。2.使用和向下采样同样的高斯核,并将其乘以4,对图像进行卷积。代码实现:向下采样:res = cv2.pyrDown(src)向上采样:re...原创 2018-11-22 21:33:55 · 8454 阅读 · 0 评论 -
OpenCV边缘检测——Sobel,Scharr,Laplacian,Canny算子的使用
Sobel算子import cv2import numpy as np img = cv2.imread(&quot;test.png&quot;)x = cv2.Sobel(img,cv2.CV_16S,1,0)y = cv2.Sobel(img,cv2.CV_16S,0,1)absX = cv2.convertScaleAbs(x) # 转回uint8absY = cv2.convert...原创 2018-11-22 20:11:59 · 367 阅读 · 0 评论 -
cv2.calcHist()的使用
参考:https://www.jianshu.com/p/bd12c4273d7d原创 2018-11-20 21:42:25 · 36867 阅读 · 5 评论 -
cv2.threshold()函数的使用
th,res = cv2.threshold(img,thresh,maxVal,type)img:原图像thresh:阈值maxVal:最大值,一般为255type:cv2.THRESH_BINARY:超过阈值的像素设置为maxVal,不超过的设置为0cv2.THRESH_BINARY_INV:不超过阈值的设置为maxVal,超过的设置为0cv2.THRESH_TOZERO:低于...原创 2018-11-20 23:15:11 · 7077 阅读 · 0 评论 -
OpenCV-Python——图像形态学操作
腐蚀的原理:二值图像前景物体为1,背景为0.假设原图像中有一个前景物体,那么我们用一个结构元素去腐蚀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用这个最小值替换当前像素值。由于二值图像最小值就是0,所以就是用0替换,即变成了黑色背景。从而也可以看出,如果当前结构元素覆盖下,全部都是背景...原创 2018-11-21 21:13:28 · 1273 阅读 · 0 评论 -
plt.hist()绘制直方图
plt.hist(src,pixels)src:数据源,注意这里只能传入一维数组,使用src.ravel()可以将二维图像拉平为一维数组。pixels:像素级,一般输入256。原创 2018-11-23 16:38:28 · 12506 阅读 · 1 评论 -
OpenCV-Python——Sobel边缘检测算子和Scharr算子
Sobel算子Sobel算子依然是一种过滤器,只是其是带有方向的。在OpenCV-Python中,使用Sobel的算子的函数原型如下:dst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])函数返回其处理结果。前四个是必须的参数:第一个参数是需要处理的图像;第二个参数是图像的...原创 2018-11-21 22:03:41 · 623 阅读 · 0 评论 -
OpenCV-Python——逻辑运算
与操作cv2.bitwise_and(src,mask)或操作cv2.bitwise_or(src,mask)非操作cv2.bitwise_not(src)异或操作cv2.bitwise_xor(src,mask)原创 2018-11-23 19:17:52 · 443 阅读 · 0 评论 -
OpenCV-Python——直方图均衡化
函数res = cv2.equalizeHist(src)直方图均衡化的过程:1、求出每个像素值对应的概率2、根据每个像素值的概率求得累计概率3、将每个像素映射为每个像素的累计概率乘以256得到的值大致图示:效果:使得图像灰度的分布更加均衡,而不是集中在某个区间,灰度值更加丰富,图像对比度更高,直观感受为图像更加清晰,色彩更加丰富,细节更加丰富。效果图:处理前:处理后...原创 2018-11-23 19:52:25 · 375 阅读 · 0 评论 -
HSV色彩空间表和cv2.inRange()的用法
结合cv2.inRange()可以清晰看到某个颜色区域图像位于图像的什么地方。用法cv2.inRange(img,low,high),函数会将位于两个区域间的值置为255,位于区间外的值置为0。比如想要看到青色的区域处于图像中的什么位置,青色的区域是[78,43,46],[99,255,255]hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)...原创 2018-11-19 21:08:35 · 12277 阅读 · 1 评论 -
OpenCV泛洪填充算法cv2.floodFill()
函数定义:cv2.floodFill(img,mask,seed,newvalue(B,G,R),(loDiff1,loDiff2,loDiff3),(upDiff1,upDiff2,upDiff3),flag)解析:img:需要处理的图像mask:一般设置为长宽比img大2的zeros数组seed:起始像素点newvalue:需要填充的颜色loDiff和upDiff:需要处理的与s...原创 2018-11-19 23:01:15 · 4653 阅读 · 1 评论 -
MacOS下安装PCL中的一些坑
1.fatal error: ‘vtkSmartPointer.h’ file not found这里是因为没有找到vtk这个库。将find_package(PCL REQUIRED COMPONENTS COMMON IO)改成find_package(PCL REQUIRED COMPONENTS common io),这里是要区分大小写的。2.Undefined symbols fo...原创 2019-09-30 10:44:51 · 2276 阅读 · 1 评论