![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理opencv
猪猪派对
这个作者很懒,什么都没留下…
展开
-
模板匹配算法原理与实现-opencv
原理模板匹配的原理就是将模板图像在源图像上进行滑动,上下左右的滑动,被模板图像盖住的部分叫做子图像。然后计算模板图像与子图像的相似程度,模板左上角每移动一次计算一次,记录下该像素点的位置和模板与子图的相似分数。详细原理可以参考:https://blog.csdn.net/qq_42887760/article/details/86563500代码#include <opencv2/opencv.hpp>#include <iostream>#inclu原创 2021-06-14 14:34:33 · 3531 阅读 · 1 评论 -
opencv直方图的处理-均衡化-计算-比较-反向投影
像素重映射map1 和 map2分别代表图片的位置,map1是X轴,map2是Y轴,关于困惑可以参考这篇博文,传送门void update_map(void) { //遍历图片像素 for (int row = 0; row < src.rows; row++) { for (int col = 0; col < src.cols; col++) { switch (index) { case 0://缩小到中间位置 if (col > (src.原创 2021-06-10 21:34:32 · 118 阅读 · 1 评论 -
霍夫变换(直线与圆)-原理与实现
霍夫直线变换关于变换的原理,这篇博文写得非常详细,传送门也可以看这个视频,传送门 Canny(gray_src,dst,50,100,3,false); vector<Vec4f> lines; //定义容器 HoughLines(gray_src, lines, 1, CV_PI / 180, 10, 0, 10);//霍夫变换 for (size_t i = 0; i < lines.size(); i++) { Vec4f h1 = l原创 2021-06-09 15:20:08 · 161 阅读 · 0 评论 -
sobel算子-Laplace算子-canny算子原理与c++实现-opencv
sobel Mat xgrad, ygrad; Scharr(gray_src, xgrad, CV_16S, 1, 0); Scharr(gray_src, ygrad, CV_16S, 0, 1); // Sobel(gray_src, xgrad, CV_16S, 1, 0, 3); // Sobel(gray_src, ygrad, CV_16S, 0, 1, 3); convertScaleAbs(xgrad, xgrad);//取得绝对值 convertSca转载 2021-06-08 15:17:32 · 288 阅读 · 0 评论 -
图像边缘填充-opencv-copyMakeBorder用法
在进行卷积操作的时候,我们需要对图像边缘的像素也进行卷积操作,就需要在边缘外在进行填充才行。openCV中默认的处理方法是: BORDER_DEFAULT,此外常用的还有如下几种:- BORDER_CONSTANT – 填充边缘用指定像素值- BORDER_REPLICATE – 填充边缘像素用已知的边缘像素值。- BORDER_WRAP – 用另外一边的像素来补偿填充 int top = (int)(0.05*src.rows); int bottom = (i...原创 2021-06-08 11:20:46 · 403 阅读 · 1 评论 -
opencv 读取图片路径失败,未找到stl.cpp,读取字符串失败,字符路径前被自动加上?
这个问题搞了我一个小时,其他常规的解决方案都试过了,库文件这些配置是正确的,也尝试修改了编码,还是读取路径失败。调试进入base.cpp发现字符串被自动加上了?,未找到stl.cpp解决方案:引入using namespace std然后把路径放在定义的字符串变量中imagepath = "C:\\Users\\52505\\Desktop\\1.png"src = imread(imagepath );运行成功,读取到图片...原创 2021-06-08 10:05:55 · 333 阅读 · 0 评论 -
双边滤波原理详解-c++实现-opencv
bilateral filter双边滤波器的通俗理解图像去噪的方法很多,如中值滤波,高斯滤波,维纳滤波等等。但这些降噪方法容易模糊图片的边缘细节,对于高频细节的保护效果并不明显。相比较而言,bilateral filter双边滤波器可以很好的边缘保护,即可以在去噪的同时,保护图像的边缘特性。双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的(不理解这几个概念没关系,后面会慢慢解释)...原创 2021-06-07 18:19:19 · 228 阅读 · 0 评论 -
图像金字塔原理与C++实现
原理高斯图像金字塔分为上采样和下采样两种上采样:就是放大图片,先将图像在每个方向放大为原来的两倍,新增的行和列用0填充,再使用先前同样的内核与放大后的图像卷积,获得新增像素的近似值。下采样:先对图像进行高斯内核卷积 ,再将所有偶数行和列去除。代码c++调用opencv模块进行实现 // 上采样 pyrUp(src, dst, Size(src.cols*2, src.rows * 2)); imshow(OUTPUT_WIN, dst); // 降采样 Mat s_d原创 2021-06-07 18:14:35 · 723 阅读 · 0 评论 -
图像二值化和灰度形态学与操作
灰度腐蚀与膨胀示例代码#include <opencv2/opencv.hpp> #include <iostream> using namespace cv;Mat src, dst;char OUTPUT_WIN[] = "output image";int element_size = 3;int max_size = 21;void CallBack_Demo(int, void*);int main(int argc, char** argv原创 2021-06-07 17:41:08 · 298 阅读 · 0 评论 -
opencv-图像混合-图像模糊
图像混合addweightedaddWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);均值滤波point(-1,-1)表示锚点位于中心高斯模糊高斯双边滤波传送门,写的非常详细。原创 2021-06-07 16:43:47 · 91 阅读 · 0 评论 -
图像反转-灰度化-c++底层实现-opencv
彩色图像直接灰度化+底层灰度化实现#include<iostream>#include<math.h>using namespace std;using namespace cv;int main(int argc, char** argv){ Mat gray,dst; Mat src = imread("22.jpg"); namedWindow("Window Title", WINDOW_NORMAL); if (src.empty()) { c原创 2021-06-06 17:55:30 · 378 阅读 · 1 评论