opencv100问
StarSky-yuan
这个作者很懒,什么都没留下…
展开
-
opencv学习28-31——图像平移,图像缩放,仿射旋转,仿射倾斜
Q:平移在相同大小的范围内,原图像上下左右移动。#include"opencv2/core/core.hpp"#include"opencv2/highgui/highgui.hpp"#include<opencv2/opencv.hpp>#include"iostream"#include"math.h"using namespace cv;using namespace std;Mat Affine_Translation(Mat img,double mx,doub原创 2020-09-12 17:52:00 · 295 阅读 · 0 评论 -
opencv学习24-27——伽马矫正,最邻近差值,双线性差值,双三次插值
Q:伽马矫正伽马矫正是一种针对图像像素值作非线性处理的手段,主要为指数形式变化,目的在于优化图像的视觉效果。一般表达式如下。Vout表示输出的像素值,Vin表示输入的像素值,A为系数,阿尔法为指数,...原创 2020-09-07 15:13:55 · 674 阅读 · 0 评论 -
opencv学习20-23——折线直方图,柱状直方图,归一化,均衡化
定义直方图是数学中的一种表达工具,在统计学中应用颇多,直方图是一个二维的图标,如果放在坐标系中就是横轴和纵轴,分别表示不同的参数,在图像中就是图像样本的整体与图像单个的属性之间的统计关系。通俗的理解就是在横轴参数的不同区间内,某一特征或属性的数量或频率是多少。分类有灰度直方图,图像直方图,还有归一化和均衡化以及利用直方图的相关应用。直方图的绘制OpenCV提供了相关的API,如下所示。OpenCV提供了两个重载的calcHist函数,它可以计算一系列阵列的直方图,这些系列通常是图像或像平面。它最原创 2020-08-24 14:58:51 · 1234 阅读 · 0 评论 -
opencv学习17-19——laplacian滤波,Emboss滤波,Log滤波
Q17:laplacian滤波laplacian 是边缘检测的一种,算子如下代码如下#include"opencv2/core/core.hpp"#include"opencv2/highgui/highgui.hpp"#include<opencv2/opencv.hpp>#include "math.h"#include"iostream"using namespace std;using namespace cv;#define Kernel_size 3原创 2020-07-25 17:09:00 · 877 阅读 · 0 评论 -
opencv学习9-13——高斯滤波,中值滤波,均值滤波,motion滤波(运动模糊),Max-Min滤波
任务:用高斯滤波对图像进行降噪。Step1:高斯滤波是啥?高斯滤波器是用于图像平滑处理的一种手段,性质为线性平滑,可对噪声进行过滤,达到降噪的目的。高斯滤波在数学上的体现就是对整个图像像素值通过加权平均重赋值的操作。加权平均可以理解为不同部分按照不同的阈值进行计算再相加的结果。例:期末考试的成绩科一:80分,10%科二:90分,40%科三:70分,50%加权平均=80*10%+90*40%+70*50%。10%,40%,50%代表阈值。当所有阈值相等时就变成了算术平均,因此算原创 2020-07-19 17:43:10 · 1624 阅读 · 0 评论 -
opencv学习6-8——图像减色处理,平均池化,最大池化
减色处理就是将图片的256^3个色调变成4^3个色调,也就是将原来每个通道256个颜色级分成四个区间压缩到4个颜色级,这四个灰度级是给出的,分别是32,96,160,224。当然这个值可以更改,如何更改则根据不同的关系式得出不同的四个灰度级。以(32,96,160,224)为例,在程序中要满足下面的关系。pix=32 (0<pix<64) 96 (64<pix<128) 160 (128<pix<192) 224原创 2020-07-14 16:04:53 · 2687 阅读 · 0 评论 -
opencv学习5——大律二值化(ostu)
opencv中有多种方法进行图像的二值化,前面的3中直接设置二值化的阈值,比较粗暴无脑,而且用人眼看的话根本看不出来最佳阈值,因此人为的设置阈值是一种很不科学不严谨的方法,在opencv中ostu二值化应用很多。它是二值化中的一种高效算法,如果不了解ostu这种经典的二值化法就不能说是学习过opencv。算法原理首先从原理说起,这个ostu并不是完成最终的图像二值化,而是计算出二值化最合理最优化的分割阈值,从而实现完美二值化。首先需要将图片分为前景和背景,也就是将图片处理为非黑即白的二值化,白色定为原创 2020-07-13 18:38:11 · 1829 阅读 · 1 评论 -
opencv学习4——HSV与RGB的转换
在进行HSV和RGB转换之前大致了解一下两者的区别。HSV颜色模型是根据颜色的直观特征所创立的一种颜色模型,它的名字就代表了这个模型的三个参数H,S,V。模型为六棱锥,三个参数就在上面不同维度进行表示。模型如下。原图来源百度百科。前者是空间模型,后者是模型概念图H(Hue):色调。采用角度表示,在模型中为棱锥的底面,因此范围就是0~360度,如图所示,不同的角度规定了不同的颜色。0度表示红色,每隔120度分别为绿色和蓝色,对应三基色RGB,他们两两之间又以60度为间隔加入互补色,由0度逆时针开始原创 2020-07-13 12:30:51 · 4496 阅读 · 0 评论 -
opencv学习1-3——通道变换,灰度化grayscale,二值化thresholding。
入手opencv,最好的方法就是对应着程序进行学习是一个很好的方法,通过一些单个程序来了解图形处理的一些知识。这篇文章将介绍下面五个小任务。通道变换,灰度化,二值化,Otsu,HSV变换。本文以C++版本进行代码介绍。Q1:通道变换一幅常规彩色的图像由BGR三通道组成,opencv提供cv::imread函数读取的彩色图像通道就是按照BGR的顺序进行排列的。opencv中也提供了模板类Vec,它可以表示一个向量。比如Vec3b可以表示一个8U的彩色图像,8U为8位无符号,除此之外Vec类定义了许多如原创 2020-07-13 08:37:46 · 2964 阅读 · 0 评论 -
opencv学习14-16——差分滤波,Sobel滤波,Prewitt滤波
Q12:Motion滤波motion滤波与均值滤波和中值滤波类似,均是采用窗口设计,计算窗口的中心值,区别就是中心值的方法不同,motion滤波是仅计算窗口矩阵的主对角线元素的均值,其他元素不参与计算,以3*3为例,如下所示。中心值就是(x1+x2+x3)/3,滤波后的图像每一个像素值都是由该像素点和邻域的窗口元素按照这种规则计算而来。代码如下#include"opencv2/core/core.hpp"#include"opencv2/highgui/highgui.hpp"#inc原创 2020-07-25 12:27:09 · 2281 阅读 · 0 评论