- 博客(18)
- 资源 (10)
- 问答 (3)
- 收藏
- 关注
原创 分水岭算法的python实现及解析
1 算法简介分水岭算法的原理很容易查到,就是往山谷中注水,把不同湖水接触的位置称作分水岭,这么做的结果有两个:1.得到整个区域的分界线2.把整个区域编号这是一种很容易过分割的算法,需要一些预处理手段和一些优化,本文只解析基本原理(下图的注水过程是一种基于人为标记的方法)2 代码步骤说明分水岭算法的步骤如下:1.将图像的所有像素按像素值从小到大排序,这里可以利用直方图将像素信息塞入数组2.开始按灰度级从小到大顺序遍历所有像素,先将该灰度级的全部像素标记为待计算点,若点的邻域内有已存在的水池
2022-03-29 21:44:16
10609
4
原创 BM3D算法半解,带python代码
1.思路BM3D和NLM算法有一些相似之处,NLM的文章之前有写过:前往他们都是用图像其他区域的特征与当前块特征融合成去噪后的图像块,主要的不同之处在以下几点:1.只在固定半径内搜索2.把有限个最相似的块叠成三维数组,先对图像块做水平方向上的2D的正交变换,再做纵向1D的正交变换(称为协同滤波(Collaborative Filtering))第一点很好理解,就是减少了计算量,因为噪声在空间上是独立的,所以在单幅图片的情况下,仍然需要使用其它区域的相似图像...
2022-02-20 19:35:20
6344
4
原创 轮廓提取算法理解,python实现
概述本轮廓提取算法来自opencv,findContours()。根据论文:Satoshi Suzuki and others. Topological structural analysis of digitized binary images by border following. Computer Vision, Graphics, and Image Processing, 30(1):32–46, 1985.轮廓的边界分为外边界和孔边界,这个暂时没有理清,看其他人的说法实现起来怪怪的
2021-09-08 17:04:18
2819
1
原创 FSRCNN超分辨率复现问题记录
1.生成训练集时,不可将图像过分缩小,这样会导致细节消失,属于让网络无中生有,生成的效果很差,难以将细线复原得很顺滑2.损失函数不要用MSE,MSE容易导致图像边缘模糊,后面改用SmoothL1Loss后提升明显3.增加网络的层数是一个容易达到目标的方法,但是对于工程来说可能并不是最好的方法4.处理学习率使用CosineAnnealingLR和ReduceLROnPlateau,感觉效果都不错5.Loss在训练后期看似变化不大,但实际上其均值还在稳步下降,并且此时每一点的进步都是至关重要的。我的理解
2021-09-06 22:07:24
314
原创 快速排序法(C++)
原理:1.将第一个点作为基准2.从右到左寻找小于基准的点(必须先从右到左)3.从左到右寻找大于基准的点4.交换找到的点5.当两个点遍历到同一位置时,交换该点与基准点(此时,该点左侧的数都小于该点,右侧都大于)6.以该点为中心(除去该点),分别再次计算左侧和右侧,递归下去void FastSort(vector<int>& arr,int start,int end){ if(start >= end) return;
2021-03-23 21:44:43
165
原创 FAST特征点检测算法,python实现,SSE加速
FAST是一种根据角点的定义来设计的快速特征点检测算法,与sift和surf不同的是,它不能描述特征点,只能找到点,可以结合sift和surf的特征描述方法来生成具体的特征信息。上图就是fast算法的示意图,不需要高斯金字塔,只需要像素点周围的圆形边缘点,就能检测出特征点。步骤如下:定义阈值T,超过该阈值的将被认为有继续计算的价值。分别计算点1,9的与中心点的像素差,若两个结果都大于阈值则继续计算,否则认为是非特征点,停止计算(能否检测纯色方形的角?)。计算1,9,5,13与中心点的像素差,若其
2021-03-13 17:20:33
1554
原创 sift算法原理,按步骤记录
sitf算法是一种描述图像特征的,重要的,基础的方法。主要由以下几个步骤构成:0.尺度空间理论尺度空间理论认为,人眼在认知画面时,在不同的尺度上使用的是不同特征,例如观察树叶时使用的是小尺度特征,观察大树时则是一个整体,因此sitf算法使用高斯模糊来构造大尺度特征。提取的特征可能是某些角点、某些边缘,相似的图片或能检测出大量相同特征,可以用于物体的识别,图像的匹配等。1.构造尺度空间——高斯金字塔sift的第一步便是构建图像在每个尺度上的画面,具体为对图像做不同程度的高斯模糊,然后降采样,构建一组
2021-03-11 16:05:37
2490
原创 perf检测x265函数耗时的使用笔记
1.在x265的encoder和common文件夹下找到CMakeLists.txt,加上add_definitions("-Wall -g"),使其编译出的库带符号表,然后编译安装2.输入perf命令开始记录linux运行的任务perf record --call-graph dwarf3.另一个终端启动ffmpeg4.等ffmpeg转码完毕后,用CTRL+C停止perf,此时在执行命令的文件夹底下有perf.data,如果之前已经运行过,则上一次的结果会重命名为perf.data.old5
2021-03-08 13:17:06
866
原创 TV去噪的拙劣理解以及python实现
TV去噪的原理描述为:受噪声污染的图像总变分比无噪图像总变分大啥是总变分?根据以下公式:J(u)=∬x,y∈image∣▽u∣dxdy=∬x,y∈imageux2+uy2dxdyJ(u)=\iint_{x,y\in image}^{}|\triangledown u|dxdy=\iint_{x,y\in image}^{}\sqrt{u_{x}^{2}+u_{y}^{2}}dxdyJ(u)=∬x,y∈image∣▽u∣dxdy=∬x,y∈imageux2+uy2dxdy其中uxu_{x
2021-03-07 19:30:15
2879
6
原创 NLM去噪算法的python实现
NLM全名non-Local Means——非局部均值,通过寻找图片中与当前像素相似的区域,计算出权重,再求和,即当前图像的去噪结果是图像中相似块的融合原理非常简洁,以下图为例:假设含噪声图像为vvv,去噪图像为uuu那么输入输出的关系为:u(x)=∑y∈Iw(x,y)v(y)u(x)=\sum_{y\in I}^{}w(x,y)v(y)u(x)=∑y∈Iw(x,y)v(y)其中yyy的取值范围是整幅图像,www是代表了图像块xxx,yyy的相似度,是一种权重,每个输出点都要对整个图像求权重,
2021-03-04 20:53:27
2617
2
原创 flv封装的码流分析!(实例分析)
最近总觉得自己做了一年视频编解码相关的边缘工作,却一直看不懂码流,决定要弄懂一下,现在不然再有问题来找我,我又不会,就尴尬了本文使用的解析工具为:flvparseflv文件的来源:点此链接然后直接上图,相关的注释我会放在图后面注释:FLV头部:FieldtypeComment签名UI8’F’(0X46)签名UI8‘L’(0X4C)签名UI8‘V’(0x56)版本UI8FLV的版本。0x01表示FLV 版本是1保留字段UB5(位域)
2021-02-28 17:17:06
549
1
原创 理解导向滤波原理
一、性质引导滤波的特性是:当引导图比较陡峭时,输出图像应随着引导图变化而变化,当引导图较为缓和时,输出图像应接近输入图像。二、原理引导滤波的思想是:认为输出图像与引导图像在 小范围 内是 线性关系 ,将起伏不定的连续像素看成一段段的小线性函数,每一小段的公式如下:qi=akIi+bkq_{i}=a_{k}I_{i}+b_{k}qi=akIi+bk其中i是像素坐标,I为引导图像素值,q为线性函数拟合的输出图像,ak、bk是线性函数的两个参数,我们将这个线性函数的适用范围记为k。也就是说
2021-02-23 20:38:24
1670
1
原创 图像球面化算法-学习笔记
最近想拓展一些图像滤镜相关的知识,在此记录定义:球面化算法将图像中的点映射到球面上,然后显示到平面上这里只看侧视图的映射关系就好了,比较容易理解:整个过程如上图所示,图片上的一点A经过球面化映射到点P,最后显示为A’这个过程中很重要的一点是,图像平面的像素在球面上是均匀分布的,然后从球面投影回图像上才发生了畸变。因此,可以根据侧视图的周长和所占图像区域的比例关系计算A’的位置首先,将图像上的点均匀映射到圆上OA在圆上的长度: L=2π2R∗OAL=\frac{2\pi }{2R}*OAL=2
2021-02-20 16:50:31
1379
三大白平衡算法的统一实现gray world,gray edge,width patch,Shades of Grey(matlab)
2018-05-14
MMBEBHE(matlab)
2017-11-03
asp.net写webapp是否能调用引用了其它非托管dll的c++非托管dll?
2017-02-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人