opencv算法实现
文章平均质量分 53
Coco~567
关注领域:计算机视觉,深度学习,opencv,wxWidgets,octave,python等
展开
-
OpenCV——油画特效
油画原理:一、获取图像灰度图,灰度值范围0~255二、mask大小,比如5*5,计算mask对应灰度图像的灰度等级(0~level)三、将当前mask,level占有最多数量的像素点,对应到彩色图像进行RGB求和,算平均值。四、以此类推,最终得到油画特效后的彩色图像。优化速度:降低时间复杂度,根据不同mask尺寸,将时间复杂度由O(n^2) -> O(2n)。mask移动方向,蛇形移动。 → → → → → → → ↓ ...原创 2020-09-12 19:10:44 · 979 阅读 · 0 评论 -
OpenCV——Anime4k代码
新的实时漫画放大算法。立志于改善AV画质。至于更清晰的说明请搜索baidu。核心还是用到了8方向sobel核的思想,在改善边缘的同时,不造成振铃和过冲。代码运行设置参数请详细见官网说明。我的设置:"Art_0.png" "test_upscaled.png" 2 (Art_0.png直接下载测试有问题,估计不是真正的png图像,需要额外转一次格式)值得一提的是,代码所需处理的图像...原创 2019-10-17 16:40:55 · 1540 阅读 · 7 评论 -
OpenCV——双峰阈值分割
此方法适用于图像直方图呈现双峰形状。如下图。方法设计:结果与th敏感。若图像直方图呈现多峰,判定不理想。#include <opencv2\opencv.hpp>#include <iostream>using namespace std;using namespace cv;/****************img : 图像*th : ...原创 2019-09-09 17:05:11 · 3713 阅读 · 0 评论 -
OpenCV——UMat对象
为了开发者在不支持opencl设备的情况下也能进行CPU运算,或者支持opencl的情况下能利用opencl加速。Opencv引入UMat对象。通常的Mat转UMat对象:Mat img;UMat uimg;img.copyTo(uimg);UMat转Mat对象:UMat uimg;Mat img;img = uimg.getMat(flags);flags...原创 2019-08-26 10:30:36 · 3522 阅读 · 0 评论 -
OpenCV——svd速度优化
在发现opencv运行SVD::compute()过程太慢,一张299*299的图片Debug要几s,release也要0.5s。第一次尝试:将299*299图像分成13份23*299的图像运行svd。release模式下能达到0.25s,将近快一倍。第二次:加上UMat,成绩感人。release模式下速度0.02s,又快了10倍。void main(){ Mat ...原创 2019-08-23 15:05:54 · 1951 阅读 · 1 评论 -
OpenCV——相当通俗易懂的SVD奇异值分解
在说明前,我也是查了大量文档,弄清楚各个名词的意思,才写下这篇博客。。。特征值和特征向量:根据公式:A是n*n的方阵(必须是方阵),x是特征向量,λ是特征值。一般情况下,会有n个特征值,和n个特征向量。(这里的一般是指方阵是满秩,各行各列都是线性无关)。引出问题:如果不是n*n维的矩阵,怎么求?假设矩阵X是m*n,则可以求或矩阵的特征分解。一般的非方阵的特征分解称为奇异...原创 2019-08-14 15:17:12 · 9134 阅读 · 0 评论 -
MEC——优化卷积速度
根据MEC —— 优化内存与速度的卷积计算一文,用代码实现,卷积加速。初代版本代码实现:#include <iostream>#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>using namespace std;using namespace cv;class Par...原创 2019-06-03 14:17:49 · 887 阅读 · 0 评论 -
OpenCV——写法问题
作为程序员,最常常遇到的情况就是自己所想的和写出来的程序运行结果大相径庭。原因有多种,可能是经验的偏差,语法错误,或者一些别的情况。所以我心血来潮的想写一些记录,方便自己查阅,也分享给你们。ps:有的漏洞,我会说明原因,有的则没有,也希望读友能指出,感谢。OpenCV经典操作,卷积核的编写。例如,边缘算子,锐化算子等等。正确操作如下://.........(此处省略头文件,命名空...原创 2019-02-21 10:58:28 · 519 阅读 · 0 评论 -
OpenCV(六)——Hough检测圆原理及算法实现
hough检测圆的思路:(1)图像中取出圆的轮廓(灰度值为255)(2)根据圆的极坐标公式:现在已知的是圆上的点,则x,y已知,反推出x0 和 y0(圆心的位置)。的范围是0~360度,不过注意要转化成弧度。(3)投票机制:每次根据(2)公式得到的点,都在数组相应坐标+1(4)归一化:得到最大投票数的点,生成的图像在该点的像素灰度置为255。(5)画圆...原创 2018-12-06 17:21:12 · 2867 阅读 · 0 评论 -
OpenCV(五)——超细节的Canny原理及算法实现
继上一章承诺,编写这一章。原因呢,是这样,在实际项目中,用到canny很少,我总觉得它对于细节边缘过于详尽。我们知道,opencv提供的算法库,内部核心算法是定死的,你只能通过调节参数来测试。如果你不知道原理,估计这次调好了,下次又要花大半时间去。简直是无用功。本着专研精神,还有也方便自己后续查阅,于是乎我就推出这一期的Canny算法。 啰嗦几句,其实要学好算法,看书是必不...原创 2018-12-06 10:52:22 · 14718 阅读 · 3 评论 -
OpenCV(四)——你熟悉却不知道原理的“边缘“识别
在图像处理中我们时常需要将物体分割出来,或者区分前后景,等等。在这些问题中,边缘似乎是不可避免的问题,如何取一个你认为对的“边缘”是至关重要的。综上提出了“如何取边缘”的问题。那么,首先为了解题,我们需要知道何谓“边缘”,换言之,边缘是怎么定义的。当然,“边缘”定义在不同情况下有很多分歧。一般的,最常用的是阶梯型边缘举一些简单的例子: (a)图:是理想情况,在一点突变。...原创 2018-11-29 17:42:21 · 1882 阅读 · 0 评论 -
OpenCV(三)——PhotoShop中的饱和度调节
PhotoShop的饱和度调节公式: ①计算每个像素点三基色最小值和最大值②delta为两值之差 / 255,如果两值之差为0则不做操作value为两值之和 / 255③有RGB图像空间转化成HSL(H色调,S饱和度,L亮度)L = value / 2如果L < 0.5 则 S = delta / value;否则 S = delta / (2 - value...原创 2018-10-10 09:03:18 · 3397 阅读 · 2 评论 -
OpenCV(二)——LUT颜色空间缩减
LUT是look up table的缩写,中文解释:显示查找表,实际意义很简单易懂。举个例子,如果是单通道的图像,灰度梯度是0~255,即分为256级。你可以设置对应灰度转化成你设置成的灰度table[256];table[0] = 2;table[1] = 5;像上图就是把原灰度0的值变成2,灰度1变为5。展示下如何使用LUT进行图像压缩。#include <...原创 2018-10-09 15:10:07 · 815 阅读 · 2 评论 -
OpenCV(一)——高斯卷积核原理及代码实现
贴出getGaussianKernel源码在smooth.cpp中提示:Gaussian核基于 正态分布函数设计μ是均值,σ^2是方差正态函数(即一维Gaussian卷积核)如下二维卷积核通过对一维积分得到,并且μ = 0根据如下源码可知:sigma根据如下公式推得,其中ksize是卷积尺寸(方阵长或宽)sigma = ((ksize-1)*0.5 – 1)*0...原创 2018-09-21 15:54:55 · 10185 阅读 · 0 评论 -
一种快速的自适应二值化算法-wallner
wallner算法原理简述:我们用P(n)来表示第n个点的灰度值. T(n)来表示二值化后的值。用f s (n) 来表示第n个点之前s个点的灰度值的和,就是用这个s和另一个变量t就可以简单的说明P(n)应该是0还是1了, 这个公式就是根据经验值来看, 这里的s和t最佳的取值范围是s= image.width/8, 而t=15的时候效果最好.且1为黑(背景),0为白(前景))...原创 2018-07-29 20:39:24 · 7970 阅读 · 4 评论 -
详细及易读懂的 大津法(OTSU)原理 和 比opencv自带更快的算法实现
OTSU算法原理简述:最大类间方差是由日本学者大津(Nobuyuki Otsu)于1979年提出,是一种自适应的阈值确定方法。算法假设图像像素能够根据阈值,被分成背景[background]和目标[objects]两部分。然后,计算该最佳阈值来区分这两类像素,使得两类像素区分度最大。公式: 记M = 256 单通道灰度分级 Sum = 像素总数背景像素占比 前景像素占比 ...原创 2018-07-20 16:38:21 · 54748 阅读 · 16 评论