- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 图像处理(八):线段检测之Hough变换
现阶段用最多的线段检测算法为Hough变换,对于Hough变换的原理部分已经有很多人写过,具体可以参考:点击打开链接,这里我总结一下理解Hough变换算法的难点。一、直线表示方法:1)最常用的方法为斜截式:y=kx+b,已知直线的斜率及y轴上的截距,即可确定一条参数。2)Hough变换中参数方程:rho = x * cos(theta) + y * sin(theta),原理部分一般都
2017-11-27 15:12:30 4608 1
原创 图像处理(七):图像变换
图像的平移、镜像原理都很简单,一搜一大堆。具体可以参考博客:点击打开链接实现代码如下:#include using namespace cv;int main(){ Mat src = imread("1.jpg"); Mat gray; cvtColor(src, gray, CV_BGR2GRAY); //1、 平移变换 int Xoffset = 30, Y
2017-11-19 14:35:08 674
原创 图像处理(六):二值化
二值化:设置一个阈值,图像灰度值如果小于这个阈值,就将对应灰度值设置为0,反之,保留。按照设置阈值的方式:1、固定阈值:预先设置的固定阈值;2、自适应阈值:通过某种算法对图像像素进行处理,自动计算出最佳的阈值;固定阈值就不多说了,太简单了!这里说一下自适应阈值,最经典的要数大津法(OTSU),将图像直方图用某一灰度分成两组,将分割后两组间方差对应的灰度值设置为最佳阈值,具体原理可以
2017-11-18 17:03:54 1581
原创 图像处理(五):八邻域边缘跟踪与区域生长算法
通常在进行边缘检测之后,需要通过边缘跟踪来将离散的边缘串接起来,常使用的方法为:边缘跟踪和区域生长两种方法。边缘跟踪又分为八邻域和四邻域两种,具体原理可以参考残影、的博客。实现步骤:1、灰度化并进行Canny边缘检测2、按照预先设定的跟踪方向(顺时针)进行边缘跟踪3、每次跟踪的终止条件为:8邻域都不存在轮廓这里需要理解的点:代码中为什么更新当前方向时,需要curr_d -=...
2017-11-17 11:12:39 53846 30
原创 图像处理(四):边缘检测(二):sobel和canny
具体原理,参考博客点击打开链接,最常用的边缘检测算子有:sobel、canny、prewitt、Roberts等,sobel算子模板为:sobel算子考虑了邻域信息,相当于对图像先做加权平均,然后再做微分运算。Canny算子:1、使用Gassian滤波器平滑处理;2、使用sobel算子分别计算x,y方向梯度分量及梯度方向;3、对梯度进行非极大值抑制;4、使用双阈值对
2017-11-15 18:15:46 2857
原创 图像处理(四):边缘检测(一):
利用0、45、90、135度模板,求图像梯度,然后计算最大值:四个模板分别如下:具体代码如下:#include #include using namespace cv;using namespace std;// 8领域const int directions[9][2] = { { -1, -1 }, { -1, 0 }, { -1, 1 },
2017-11-14 19:08:06 950
原创 图像处理(三):图像滤波
均值滤波:利用点(x,y)领域内像素点均值来替换(x,y)处像素值;中值滤波:利用点(x,y)领域内像素点中值来替换(x,y)处像素值;具体实现代码如下:#include <opencv2/opencv.hpp>using namespace cv;const int directions[8][2] = { { -1, -1 }, { -1, 0 }, { -1, 1 }, ...
2017-11-13 17:53:50 647
原创 图像处理(二):直方图均衡化
直方图均衡化处理:通过重新均匀地分布各灰度值来增强图像对比度;具体实现方法如下:1、统计直方图数组,用Utable来记录Utable[i];2、i从1开始,令Cumu[i] = Cumu[i-1] +Utable[i];3、计算概率Pro[i]4、计算直方图均衡化后的数值具体代码如下:#include <opencv2/opencv.hpp>#include <iostream...
2017-11-13 16:44:03 862
原创 图像处理(一):灰度化及RGB2HSV
图像灰度化,即将图像从RBG三通道彩色图像转换成灰度图像,现有的方法主要有三种:1、取最大值:即从RBG三个彩色通道中,去亮度的最大值2、取平均值:即取RBG三个彩色通道亮度的平均值3、取加权平均值:RBG三通道占有比例分别为0.11,0.59,0.3下面是实现代码: #include <opencv2/opencv.hpp>using namespace...
2017-11-13 13:46:43 9385
原创 数学之美,判断两个线段相交
实现原理,具体参考zdy0_2004的博客点击打开链接,问题描述:判断线段AB、CD是否相交,等价于判断具体实现代码如下:Point get_vector(Point aa, Point bb){ Point vec = { 0 }; vec.x = bb.x - aa.x; vec.y = bb.y - aa.y; return vec;}float vector_pro
2017-11-11 21:49:37 315 1
MNN测试程序所需要的模型和测试图片压缩包.rar
2020-02-05
可被ncnn框架载入的yolo2模型
2018-10-23
tensorflow_gpu-1.5.1-cp35-cp35m-win_amd64
2018-07-17
opencv 3.4.1+contrib+VS2010 x86 编译库
2018-06-12
caffe VGGNet 人脸识别
2017-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人