学习笔记
文章平均质量分 92
-Bin
这个作者很懒,什么都没留下…
展开
-
基于大数据的人工智能象棋
这学期上了一门云计算与大数据的课程,课程设计是要求做一个基于大数据的人工智能象棋出来。整体来说还是比较有难度的,平常都是在Win10环境下进行开发部署,现在要求部署到服务器上面,就会遇到各种各样的问题。基于大数据的人工智能象棋项目简介实现一个能够通过互联网访问的,基于大数据的简单的人工智能象棋。实现方案前端前端方面是老师直接给了代码,http://avatarsys.org:8007/chess.html,整个页面是用canvas实现的,代替了用图片表示象棋棋子的传统方式。但是只提供了点击下象棋原创 2020-12-28 17:15:55 · 4070 阅读 · 1 评论 -
fatal err Eigen/Dense No such file or directory(unsupported/Eigen/FFT、Eigen/Core也是一样的道理)
解决方法究其原因,就是编译器找不到这个头文件了,首先要确保你已经安装了Eigen3.Eigen其实只是一个纯头文件的库,你直接安装放到include目录就好。到官网下载一个稳定的版本,然后解压放到/usr/local/include或者/usr/include目录即可。或者通过apt安装:sudo apt-get install libeigen3-dev。编译器会直接去/usr/lo...原创 2020-01-11 10:57:19 · 805 阅读 · 0 评论 -
Jupyter_入门
https://blog.csdn.net/guleileo/article/details/80490921原创 2019-11-18 16:44:34 · 330 阅读 · 0 评论 -
tensorflow_学习笔记
tensorflow中文社区http://www.tensorfly.cn/tfdoc/get_started/os_setup.html原创 2019-11-18 16:43:30 · 105 阅读 · 0 评论 -
OpenCv --解决设置曝光无效的方案
实际上默认是自动曝光,要修改成手动曝光,只需要在设置曝光之前添加如下的语句:capture.set(cv::CAP_PROP_AUTO_EXPOSURE, 0.25) // where 0.25 means "manual exposure, manual iris"cap.set(CV_CAP_PROP_EXPOSURE, 0.8);亲测有效!原文链接:https://blog.csd...原创 2019-10-27 20:14:17 · 1950 阅读 · 0 评论 -
Nvidia Jetson Nano 安装Qt5
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted univer...原创 2019-10-16 18:18:29 · 2307 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.2.3 addWeighted()函数(线性混合)(附 对 Copy To函数 ()和 Mask的理解 )
addWeighted()函数用来计算两个数组(图像阵列)的加权和。先介绍一下CopyTo()函数openCV中image.copyTo()有两种形式:1、image.copyTo(imageROI),作用是把image的内容粘贴到imageROI;2、image.copyTo(imageROI,mask),作用是如果srcImage在某个像素点(i, j)其值为1(只看第一通道,所以ma...原创 2019-07-21 11:47:34 · 353 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.1.3 split()函数 - 5.1.4 merge()函数
1.spilt()函数split函数用于将一个多通道数组分离成几个单通道数组。split函数的C++版本有两个原型,分别是:void split(const Mat& src, Mat*mvbegin);void split(InputArray m, OutputArrayOfArrays mv);参数含义如下:第一个参数:InputArray m(const Mat&am...原创 2019-07-21 12:03:01 · 543 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.4 图像对比度、亮度值调整
理论依据首先了解一下算子的概念。一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。下面是算子的一般形式:或者图像亮度和对比度的次奥做属于图像变换中比较简单的点操作(pointoprators)。点操作有一个特点:仅仅根据输入像素值(有时会加上某些全局信息或参数),来计算相应的输出像素值。这类算子包括亮度(brightness)和对比度(contrast)调整、颜色...原创 2019-07-21 16:14:37 · 847 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 -5.5.2 离散傅里叶变换相关函数详解
目录1.dft()函数2.返回DFT最优尺寸大小:getOptimalDFTSize()函数3.扩充图像边界:copyMakeBorder()函数4.计算二维矢量的幅值:magnitude()函数5.计算自然对数:log()函数6.矩阵归一化:normalize()函数1.dft()函数dift函数的作用是对一维或二维浮点数数组进行正向或反向离散傅里叶变换。函数格式:void dift(I...原创 2019-07-21 16:53:28 · 457 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.5.1离散傅里叶变换原理
如果有小伙伴还对傅里叶变换处于很迷糊的状态,请戳这里,非常通俗易懂。离散傅里叶变换(Discrete Fourier Transform,缩写为DFT)指傅里叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。形式上,变换两端(时域和频域)的序列是有限长的,而实际上这两组序列都应该被认为是离散周期信号的主值序列。即使对有限长的离散信号做DFT...原创 2019-07-21 16:59:13 · 352 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 -10个demo
1.马赛克,毛玻璃2.切边3.直线检测4.对象提取5.对象计数6.透视矫正7.对象提取与测量8.更换背景色(视频和图片)9.对象跟踪(基于颜色)10.相机标定opencv版...原创 2019-07-30 16:49:26 · 269 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 9.1 直方图
1.直方图的作用。通过标记帧与帧之间的边缘和颜色的统计变化,直方图被用来检测视频中场景的变化。通过为每个兴趣点设置一个有相近特征的直方图所构成的“标签”,用以确定图像中的兴趣点。边缘、色彩、角等直方图构成了可以被传递给目标识别分类器的一个通用特征类型。2.概念:图像直方图是图像中像素强度分布的图形表达方式,统计了每一个强度值所具有的像素个数,并将统计结果分布于一系列预定义的bins中。直方图...转载 2019-07-30 18:44:12 · 262 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 9.3 直方图对比
compareHist()函数1.作用: 比较两幅直方图 2.函数原型:(1)double compareHist(InputArray H1,InputArray H2, int method)(2)double compareHist(const SpareMat& H1, const SpareMat& H2, int method)3.参数说明:(1)直...原创 2019-07-30 18:53:49 · 189 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 9.4 直方图反向投影
直方图反向投影:简介反向投影的作用是什么?反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。void calcBackProject( const Mat* images, //源数组/图像;有相同的大小和深度(CV_8U或CV_32F)。int nimages,//源图像的数量...原创 2019-07-30 21:44:50 · 135 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 9.5 模板匹配
模板匹配(TemplateMatching)就是在一幅图像中寻找和模板图像(template)最相似的区域,该方法原理简单计算速度快,能够应用于目标识别,目标跟踪等多个领域。OpenCV中对应的函数为matchTemplate或cvMatchTemplate(参考opencvdoc),简单介绍下:1、函数原型C++: void matchTemplate(InputArray image, I...转载 2019-07-30 21:58:09 · 361 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 7.1 基于OpenCV的边缘检测 (canny算子、 sobel算子、 Laplacian算子、scharr滤波器)
目录1.基于OpenCV的边缘检测1.1一般的步骤1.2 Canny算子1.3 sobel算子1.4 Laplacian算子1.5 scharr滤波器1.6综合示例1.基于OpenCV的边缘检测1.1一般的步骤滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但是导数对于噪声很敏感,因此需要采用滤波器来改善与噪声有关的边缘检测器的性能增强:增强边缘的基础是确定图像各点邻域强度的变化值...转载 2019-07-25 22:06:02 · 425 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 -5.5.8 离散傅里叶变换综合示例(附详细注释)
完整工程代码(附详细注释):#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>#include <Windows.h> u...转载 2019-07-22 10:06:08 · 259 阅读 · 0 评论 -
Ubuntu16.04_学习笔记
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted univer...原创 2019-08-22 16:10:23 · 129 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 7.3 - 7.5 重映射、仿射变换、直方图均衡化
目录重映射仿射变换仿射变换求法equalizeHist 直方图均衡化重映射就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。void remap(InputArray src, OutputArray dst, InputArray map1, InputArray map2,int interpolation, intborderMode = BORDER_CONSTANT,...原创 2019-07-29 16:37:32 · 243 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 8.6图像修补
1. 概念利用那些已经被破坏的区域的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像,以达到图像修补的目的。2.图像修补:inpaint()函数图像修补函数inpaint函数实现,它可以用来从描述的照片中清除灰尘和划痕,或者从静态图像或视频中去除不需要的物体。函数原型如下:void inpaint(InputArray src,InputArray inpaintMask,OutputAr...原创 2019-07-30 15:05:13 · 301 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 8.5 分水岭算法——watershed自动图像分割用法
总的概括一下watershed图像自动分割的实现步骤:图像灰度化、滤波、Canny边缘检测查找轮廓,并且把轮廓信息按照不同的编号绘制到watershed的第二个入参merkers上,相当于标记注水点。watershed分水岭运算绘制分割出来的区域,视觉控还可以使用随机颜色填充,或者跟原始图像融合以下,以得到更好的显示效果。经过灰度化、滤波、Canny边缘检测、find...转载 2019-07-30 15:01:07 · 807 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 8.4 图像的矩
目录介绍矩的计算:moments()函数计算轮廓面积:contourArea()函数计算轮廓长度:arcLength()函数查找和绘制图像的轮廓矩介绍矩函数在图像分析中有着广泛的应用,如模式识别,目标分类,目标识别与方位估计、图像编码与构建等。通常描述了该图像形状的全局特征,并提供了大量的关于该图形不同类型的几何特性信息。一阶矩与形状有关,二阶矩显示曲线围绕直线平均值的扩展程度,三阶矩是关于平...原创 2019-07-29 17:59:45 · 287 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 8.3 使用多边形将轮廓包围
Opencv学习之使用多边形将轮廓包围由于在实际应用中,常常会有将检测到的轮廓用多边形表示出来的需求。返回外部矩形边界-boundingRect函数此函数计算并返回指定点集最外面(up-right)的矩形边界。Rect boundingRect(inputArray points)其唯一的参数就是输入的二维点集。寻找最小包围矩形–minAreaRect函数此函数用于对给定的2D点集,...原创 2019-07-29 17:36:06 · 480 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 8.2 寻找和绘制物体的凸包convexHull()
概述凸包(Convex Hull)是一个计算几何(图形学)中的概念,在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(x1, x2….xn)的线性组合来构造。在二维欧几里得空间中,凸包可以想象为一条刚好包着所有点的橡皮圈,用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点接!API...原创 2019-07-29 17:23:54 · 474 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 8.1 findContours()与drawContours()
查找图像的轮廓在图像处理及应用中扮演着重要的角色。那么什么是轮廓(contour)?《Learning OpenCV 3》中给出的定义是这样的——轮廓即是以某种方式表示图像中的曲线的点的列表。这种表示可以根据实际的情形不同而不同。表示一条曲线的方式有很多种。OpenCV中,轮廓是由STL风格的vector<>模板对象表示的,其中vector中的每个元素都编码了曲线上,下一点的位置信息。...转载 2019-07-29 17:09:55 · 1027 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 7.2 霍夫变换
目录基本原理1.霍夫变换2.累计概率霍夫变换3.霍夫圆变换霍夫梯度法霍夫变换常用于检测直线特征,经扩展后的霍夫变换也可以检测其他简单的图像结构。在霍夫变换中我们常用公式ρ = xcosθ + ysinθ表示直线,其中ρ是圆的半径(也可以理解为原点到直线的距离),θ是直线与水平线所成的角度(0~180°),确定了它们,也就确定一条直线了,和下图略有出入的是实际的原点定在图片左上角。原理...原创 2019-07-29 15:32:58 · 614 阅读 · 0 评论 -
【小白】Open-CV 学习笔记- 4.3基本图形绘制
目录4.3.1 DrawEllipse()函数的写法(椭圆)4.3.2 DrawFilledCircle()函数的写法(圆)代码演示4.3.3 DrawPolygon()函数写法4.3.4 DrawLine()函数的写法4.3.5 DrawRectangle()函数的写法4.3.1 DrawEllipse()函数的写法(椭圆)void ellipse(InputOutputArray img,...原创 2019-07-19 08:55:17 · 431 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 -4.2 常用的数据结构和函数
目录4.2.1 点的表示:Point类4.2.2 颜色的表示:Scaclar类4.2.3 尺寸的表示:Size 类4.2.4 矩阵的表示: Rect类4.2.5 颜色空间转换: cvtColor()函数4.2.1 点的表示:Point类Point类数据结构表示了二维坐标系下的点,即由图像的x、y坐标指定的2D点。4.2.2 颜色的表示:Scaclar类Scaclar()类表示具有四个元...原创 2019-07-18 22:21:56 · 351 阅读 · 0 评论 -
【小白】Open-CV 学习笔记- 4.1.4显示创建Mat对象的七种方式
第四章 OpenCV数据结构和基本绘图4.1 基础图像容器Mat数字图像存储概述4.1 基础图像容器Mat数字图像存储概述方式一:#include#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){//创建一个2*2 类型为8位的uchar类型三通道的 颜色为黄色...转载 2019-07-18 21:04:07 · 342 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 6.1 线性滤波 & 6.2非线性滤波
目录6.1线性滤波- 方框滤波- 均值滤波- 高斯滤波6.2非线性滤波- 中值滤波- 双边滤波6.1线性滤波1.1 平滑处理平滑处理(smoothing)也称模糊处理(bluring),常用于减少图像上的噪点或者失真,降低图像分辨率1.2 图像滤波与滤波器目的:抽出对象的特征作为图像识别的特征模式适应图像处理的要求消除图像数字化混入的噪声要求:不能损坏图像的轮廓及边缘等重...原创 2019-07-24 21:29:52 · 561 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 6.3 形态学滤波
3.1 形态学概述数学形态学建立在格论核拓扑学基础上的图像分析学科,基础的运算包括:二值腐蚀和膨胀,二值开闭运算,骨架抽取,极限腐蚀,击中击不中变换,形态学梯度,Top-hat变换,颗粒分析,流域变换,灰值腐蚀和膨胀,灰值开闭运算,灰值形态学梯度等膨胀和腐蚀消除噪声分割出独立的图像元素,在图像中连接相邻的元素寻找图像中的明显的极大值或极小值区域求出图像的梯度3.2 膨胀膨...原创 2019-07-24 22:02:40 · 166 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 -6.4 形态学滤波: 开运算、闭运算、形态学梯度、顶帽、黑帽
目录4.1 开运算4.2 闭运算4.3 形态学梯度4.4 顶帽4.5 黑帽4.6 morphologyEx()4.1 开运算开运算(Opening Operation)其实就是先腐蚀后膨胀的过程dst = open(src,element) = dilate(erode(src,element));开运算用来消除小物体,在纤细处分离物体并且在平滑较大的物体的边界不明显改变其体积4.2 ...原创 2019-07-24 22:33:02 · 367 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.2.1 感兴趣区域ROI
定义ROI区域有两种方法:第一种:使用表示矩形区域的Rect。指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数)。**imageROI = image(Rect(500, 250, logo.cols, logo.rows));**第二种:指定感兴趣行或列的范围(Range)。Range是从起始索引到终止索引(不包括终止索引)的一连续序列。CRange可以用来...原创 2019-07-21 11:11:12 · 396 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.1.5 访问图像中像素的三类方法(指针访问、迭代器iterator、动态地址计算配合at元素)
目录1、指针访问像素2、迭代器操作像素3、动态地址计算OpenCV中,有三种方式访问图像像素:指针访问:C操作符[];迭代器iterator动态地址计算上述方法在访问速度上略有差异。debug模式下,差异非常明显,在release模式下,差异就不太明显。下边通过一组例子来说明这三种方法的使用,程序的作用是减少颜色的数量,比如原来的图像是256种颜色,我们希望将它变成64中颜色,...原创 2019-07-21 09:33:12 · 209 阅读 · 0 评论 -
【小白】Open-CV 学习笔记-5.1.4 计时函数
计时函数getTickCount() 函数用于返回CPU自某个事件以来走过的时钟周期数**getTickFrequency()**函数用于返回CPU一秒所走的时钟周期数两个函数组合起来使用的实例如下:double time0 = static_cast<double>(getTickCount()); //记录起始事件//进行图像处理操作……time0 = ((dou...原创 2019-07-21 09:01:15 · 126 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.1.2 颜色空间缩减 和 5.1.3 LUT函数:LOOK UP TABLE 操作
1.颜色空间缩减颜色空间缩减的方法是:**将现有的颜色空间值除以某个输入值,以获得较少的颜色数。**即做减法,比如颜色值0到9可取为新值0,10到19可取为10,以此类推。用一个简单的公式来实现颜色空间缩减:在处理像素时,每个像素需要进行一遍上述公式计算,也需要一定的时间花销。我们可以把256中计算好的结果提前存在列表table中,这样每种情况不需计算,直接从table中取取结果即可。i...原创 2019-07-20 23:58:42 · 193 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 5.1.1 图像在内存的存储方式
目录取决于通道数1、灰度图像2、多通道:矩阵的类会包含多个子阵:比如RGB[注意opencv中子列的通道顺序是反过来的是BGR而不是RGB]3、如果内存足够大,可以实现连续存储,因此,图像中的各行就能一行一行的连接起来,形成一个长行。连续存储有助于提升扫描速度,可以用isContinuous()判断是不是连续存储...转载 2019-07-20 23:17:39 · 249 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 6.7阈值化
阈值化阈值化操作在图像处理中是一种常用的算法,比如图像的二值化就是一种最常见的一种阈值化操作。opencv2和opencv3中提供了直接阈值化操作cv::threshold()和自适应阈值化操作cv::adaptiveThreshold()两种阈值化操作接口,这里将对这两个接口进行介绍和对比。1、直接阈值化——cv::threshold()阈值化操作的基本思想是,给定一个输入数组和一个阈值,...原创 2019-07-24 23:25:55 · 381 阅读 · 0 评论 -
【小白】Open-CV 学习笔记 - 6.6 图像金字塔于图片尺寸缩放
图像金字塔图像金字塔是图像中多尺度表达的一种,最主要用于图像分割,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔式一系列以金字塔形状排列的,分辨率逐步降低且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到到达某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。层级越高图像越小,分辨率越低。通常有两种类型的图像金字塔,分别是...原创 2019-07-24 23:14:08 · 483 阅读 · 0 评论