![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
英雄小摔哥
怕什么真理无穷,进一寸有一寸的欢喜
展开
-
opencv学习日记——图像的闭运算
1、代码部分2、结果显示原创 2022-01-20 12:47:22 · 2591 阅读 · 0 评论 -
opencv学习日记——基于Hu矩的轮廓匹配
opencv学习日记——基于Hu矩的轮廓匹配图像结果(达不到预期)代码部分#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;void findcontours(Mat &img, vector<vector<Point>> &contours){ Mat gray, binary; v原创 2021-04-26 16:03:28 · 349 阅读 · 0 评论 -
opencv学习日记——Hu矩(旋转不变性)
opencv学习日记——Hu矩(旋转不变性)代码部分#include <iostream>#include <opencv2/opencv.hpp>#include <vector>using namespace std;using namespace cv;int main(){ Mat img = imread("手.png"); if (img.empty()) { cout << "输入为空"原创 2021-04-25 14:54:41 · 389 阅读 · 0 评论 -
opencv学习日记——计算图像几何矩, 中心矩, 归一化几何矩
opencv学习日记——计算图像几何矩, 中心矩, 归一化几何矩代码部分#include <iostream>#include <opencv2/opencv.hpp>#include <vector>using namespace std;using namespace cv;int main(){ Mat img = imread("nazha1.jpg"); if (img.empty()) { cout原创 2021-04-24 16:34:31 · 778 阅读 · 0 评论 -
opencv学习日记——凸包检验
#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ Mat img = imread("手.png"); if (img.empty()) { cout << "输入为可空"; return -1; } Mat gray, binary;原创 2021-04-21 15:55:23 · 93 阅读 · 0 评论 -
opencv学习日记——对多个轮廓进行多边形逼近
opencv学习日记——对多个轮廓进行多边形逼近图像处理结果代码部分#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;//绘制轮廓的函数void drawapp(Mat result, Mat img){ for (int i = 0; i < result.rows; i++) { if (i ==原创 2021-04-20 16:31:52 · 414 阅读 · 0 评论 -
opencv学习笔记——计算轮廓外界矩形(有用的)
opencv学习笔记——计算轮廓外界矩形(有用的)图像输出结果代码部分#include <iostream>#include <vector>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ Mat img = imread("形状多.png"); if (img.empty()) { cout &l原创 2021-04-19 16:54:01 · 406 阅读 · 0 评论 -
opencv学习日记——轮廓检测与绘制(效果很棒)
opencv学习日记——轮廓检测与绘制(效果很棒)1、图像结果2、代码部分#include <iostream>#include <opencv2/opencv.hpp>#include <vector>using namespace std;using namespace cv;int main(){ Mat img = imread("圆形.png"); if (img.empty()) { cout &原创 2021-04-16 16:03:39 · 149 阅读 · 0 评论 -
opencv学习日记——圆形检测
opencv学习日记——圆形检测1、图像结果效果不行阿,只能识别单一图形2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("圆形.png"); if (img.empty()) { cout << "输入为空";原创 2021-04-15 15:38:38 · 994 阅读 · 0 评论 -
opencv学习日记——检测图像中的线段(效果很棒)
opencv学习日记——检测图像中的线段1、图像输出结果效果很好,我很满意2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("直线1.png", IMREAD_GRAYSCALE); if (img.empty()) { cout &原创 2021-04-12 14:57:42 · 2961 阅读 · 0 评论 -
opencv学习日记——检测直线并绘制直线
opencv学习日记——检测直线并绘制直线1、图像处理结果效果不尽人意,感觉还是适合单一图形的检测2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;//画出直线void drawLine(Mat &img, vector<Vec2f> lines, dou原创 2021-04-11 16:22:24 · 509 阅读 · 0 评论 -
opencv学习日记——利用Canny算法提取图像边缘
opencv学习日记——利用Canny算法提取图像边缘1、图像处理结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("nazha1.jpg", IMREAD_ANYDEPTH); if (img.empty()) { cout &l原创 2021-04-10 14:58:02 · 233 阅读 · 0 评论 -
opencv学习日记——利用Lapiacian算子检测图像边缘
opencv学习日记——利用Lapiacian算子检测图像边缘1、图像结果滤波之后在检测的效果好点2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("a11.jpeg", IMREAD_ANYDEPTH); if (img.empty()) {原创 2021-04-09 22:24:59 · 125 阅读 · 0 评论 -
opencv学习日记——生成边缘检测滤波器
opencv学习日记——生成边缘检测滤波器getDerivKernels(行输出矩阵, 列输出矩阵, x方向导数的阶次, y方向导数的阶次, 滤波器大小)getDerivKernels(sobel_x1, sobel_y1, 1, 0, 3);举例 x方向导数的阶次为1,说明生成的矩阵有一列0,滤波器尺寸为3,就是两列数字中间加这一列0,以此类推,3的时候有3列0,所以滤波器尺寸为7.#include<iostream>#include<opencv2/opencv.hpp>原创 2021-04-08 18:14:11 · 260 阅读 · 0 评论 -
opencv学习日记——图像Scharr边缘提取
opencv学习日记——图像Scharr边缘提取1、图像处理结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("a11.jpeg", 0); if (img.empty()) { cout << "收入u为空";原创 2021-04-08 14:47:08 · 115 阅读 · 0 评论 -
opencv学习日记——图像的边缘检测
opencv学习日记——图像的边缘检测1、图像结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("a11.jpeg", IMREAD_ANYCOLOR); if (img.empty()) { cout << "输入为原创 2021-04-07 14:51:41 · 104 阅读 · 0 评论 -
opencv学习日记——非线性滤波(双边滤波)
opencv学习日记——非线性滤波(双边滤波)1、图像输出结果,效果也中2、代码部分#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main(){ Mat img = imread("img_noise.jpg"); if (img.empty()) { cout << "输入为空"原创 2021-04-06 22:11:07 · 95 阅读 · 0 评论 -
opencv学习日记——非线性滤波(中值滤波)这个真好用
opencv学习日记——非线性滤波(中值滤波)1、话不多数先上效果卷积核大小为3 * 3 的简直牛阿,9 * 9 的会边模糊2、代阿部分#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main(){ Mat gray = imread("gray_noise.jpg"); Mat img = imread("img原创 2021-04-06 15:09:50 · 123 阅读 · 0 评论 -
opencv学习日记——可分离图像滤波
opencv学习日记——可分离图像滤波1、图像输出结果为啥滤波之后变得不清晰????2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("nazha1.jpg"); if (img.empty()) { cout <<原创 2021-03-31 16:04:31 · 181 阅读 · 1 评论 -
opencv学习日记——图像高斯滤波
opencv学习日记——图像高斯滤波1、图像显示结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //读取之前生成的带有椒盐噪声的图像 Mat img = imread("img_noise.jpg"); Mat gray = imread("gray_noise.jpg");原创 2021-03-27 22:44:35 · 114 阅读 · 0 评论 -
opencv学习日记——图像方框滤波
opencv学习日记——图像方框滤波1、图像结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //读取图片 Mat img2 = imread("nazha1.jpg"); //读取灰度图 Mat gray2 = imread("nazha1.jpg", IMREAD原创 2021-03-26 15:53:38 · 160 阅读 · 0 评论 -
opencv学习日记——图像均值滤波
opencv学习日记——图像均值滤波1、图像处理结果总体看效果一般(哈哈哈哈)2、代码实现部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;void saltandpepper(Mat image, int n){ for (int k = 0; k < n / 2; k++) { //随机取点原创 2021-03-25 22:50:16 · 116 阅读 · 0 评论 -
opencv学习日记——给娜扎小姐姐添加高斯噪声
opencv学习日记——图像添加高斯噪声1、图像结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //读取图片 Mat img = imread("nazha1.jpg"); //读取灰度图 Mat gray = imread("nazha1.jpg", IMREAD_原创 2021-03-25 15:11:23 · 125 阅读 · 0 评论 -
opencv学习日记——图像添加椒盐噪声
opencv学习日记——图像添加椒盐噪声1、图像结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;//椒盐噪声函数void saltandpepper(Mat image, int n){ for (int k = 0; k < n / 2; k++) { //随机取点 in原创 2021-03-24 18:53:56 · 743 阅读 · 0 评论 -
opencv学习日记——CMakeLists
cmake_minimum_required(VERSION 3.16)project(testopencv)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})add_executable(testopencv install_test.cpp)target_link_libraries(testopencv ${OpenCV_LIBS})原创 2021-03-22 16:57:39 · 204 阅读 · 0 评论 -
opencv学习日记——图像卷积
opencv学习日记——图像卷积1、图像输出结果卷积完变模糊了一些。。。。。2、代码部分#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main(){ Mat img1 = imread("nazha.jpg"); Mat img; //更改一下图片尺寸 resize(img1, img, Size(原创 2021-03-22 16:54:45 · 136 阅读 · 0 评论 -
opencv学习日记——图像的模板匹配
opencv学习日记——图像的模板匹配1、图像输出结果2、代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("reba.png"); //取出一块作模板 Rect rect(400, 200, 150, 250); Mat temp = img(r原创 2021-03-22 11:11:40 · 111 阅读 · 0 评论 -
opencv学习日记——图像直方图反向投影
opencv学习日记——图像直方图反向投影#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;void show_hist(Mat hist, string name);Mat hist(Mat a);int main(){ Mat img = imread("cat.jpg"); //取出图片的一部分作为模板 Rect r原创 2021-03-21 16:38:13 · 138 阅读 · 0 评论 -
opencv学习日记——直方图匹配
opencv学习日记——直方图匹配#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;void show_hist(Mat hist, string name);Mat hist(Mat a);int main(){ Mat img1 = imread("cat.jpg"); Mat img, gray; cvtColor(i原创 2021-03-18 17:08:50 · 155 阅读 · 0 评论 -
opencv学习日记——直方图均衡化(提高图像对比度)
opencv学习日记——直方图均衡化(提高图像对比度)1、 代码部分#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;void show_hist(Mat hist, string name);Mat hist(Mat a);int main(){ Mat img = imread("cat.jpg"); if (img.empt原创 2021-03-17 16:26:40 · 228 阅读 · 0 评论 -
opencv学习日记——比较两个直方图的相似性
opencv学习日记——比较两个直方图的相似性内容基本就是前几节的综合吧。include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;void show_hist(Mat hist, string name);Mat hist(Mat a);int main(){ Mat img = imread("cat.jpg"); if (img.em原创 2021-03-16 19:18:27 · 354 阅读 · 1 评论 -
opencv学习日记——绘制娜扎小姐姐图像直方图
opencv学习日记——绘制图像直方图#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img = imread("nazha.jpg"); Mat img1; resize(img, img1, Size(650, 471)); if (img1.empty()) {原创 2021-03-13 22:47:10 · 97 阅读 · 0 评论 -
opencv学习日记——用图像窗口滑动条来调节图像亮度
opencv学习日记——用图像窗口滑动条来调节图像亮度#include<iostream>#include<opencv2/opencv.hpp>using namespace cv;using namespace std;int value;void callBack(int, void*);Mat img1, img2;int main(){ Mat img3 = imread("nazha.jpg"); resize(img3, img1原创 2021-03-13 15:55:30 · 293 阅读 · 2 评论 -
opencv学习日记——构建热巴小姐姐的高斯金字塔与拉普拉斯金字塔
opencv学习日记——构建热巴小姐姐的高斯金字塔与拉普拉斯金字塔#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main(){ Mat img1 = imread("reba.png"); Mat img; resize(img1, img, Size(400, 600)); if (img.empty()原创 2021-03-12 15:03:57 · 104 阅读 · 1 评论 -
opencv学习日记——截图与深浅拷贝
opencv学习日记——截图与深浅拷贝#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ Mat img0 = imread("nazha.jpg"); Mat img; resize(img0, img, Size(800, 600)); Mat img1 = imread("cat.jpg")原创 2021-03-11 22:56:41 · 113 阅读 · 0 评论 -
opencv学习日记——绘制基本的几何图形
opencv学习日记——绘制基本的几何图形#include<iostream>#include<vector>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //定义一个黑的图像 Mat img = Mat::zeros(Size(512, 512), CV_8UC3); //画圆 //circle(原图, 圆心,原创 2021-03-11 15:41:50 · 104 阅读 · 0 评论 -
opencv学习日记——对小姐姐进行旋转和仿射变换
opencv学习日记——对小姐姐进行旋转和仿射变换1,中心点➕角度 进行图形旋转与仿射2, 三点法 进行图形旋转与仿射#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //读图 Mat img1 = imread("sister.jpg"); //转换尺寸,小姐姐有点太大 Mat img;原创 2021-03-10 15:38:28 · 78 阅读 · 0 评论 -
opencv学习日记——图像的缩放resize
opencv学习日记——图像的缩放resize#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //读图 Mat gray = imread("xiaojiejie.jpg"); //imshow("gray", gray); if (gray.empty()) {原创 2021-03-09 15:01:42 · 188 阅读 · 0 评论 -
opencv学习日记——SVD奇异值分解与reshape
opencv学习日记——SVD奇异值分解与reshape#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //定义一个3*3的矩阵a float b[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; Mat a = Mat(3, 3, CV_32FC1, b); Mat w, u原创 2021-03-09 12:01:58 · 1068 阅读 · 1 评论 -
opencv学习日记——对娜扎小姐姐 LUT多阈值处理
opencv学习日记——对娜扎小姐姐 LUT多阈值处理简单点说就是把原图像素点像查字典一样变成我们规定的值。结论:娜扎小姐姐咋变都很美#include<iostream>#include<vector>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(){ //定义数组,然后赋值 uchar lutfirst[256]; for原创 2021-03-08 15:42:51 · 153 阅读 · 0 评论