OpenCV从入门到放弃
以OpenCV4.0为基础,从简单到深入,共同学习进步
嘻嘻_哈哈_
这个作者很懒,什么都没留下…
展开
-
14-冒泡排序
1.原理:比较两个相邻的元素,将值大的元素交换到右边2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。 (1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。 (2)比较第2和第3个数,将小数 放在前面,大数放在后面。 ...... (3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成 (4)在上面一趟比较完成后,最后一个数一定是数组中最大的一个数,所以在比较第二趟的原创 2020-12-08 18:59:47 · 176 阅读 · 0 评论 -
13-图像中值滤波
void OpenCVStudy::slot_ProcessImage(){ Mat resImage; int h = srcimg.rows; int w = srcimg.cols; //medianBlur(srcimg, resImage, 3); // 3x3 中值滤波 Mat dst = srcimg.clone(); for (int row = 2; row < h - 2; row++) { for (i...原创 2020-12-08 18:58:27 · 120 阅读 · 0 评论 -
12-添加随机噪声
void OpenCVStudy::slot_ProcessImage(){ Mat ResImg; cvtColor(srcimg, ResImg, COLOR_BGR2GRAY); Mat dstImage = ResImg.clone(); for (int k = 0; k < 500; k++) { //随机取值行列 int i = rand() % dstImage.rows; int j = r...原创 2020-12-08 08:23:44 · 1141 阅读 · 0 评论 -
11-图像均值滤波-算子实现
函数原型:C++: void blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )void OpenCVStudy::slot_ProcessImage(){ Mat ResImg; //转灰度图 //cvtColor(srcimg, ResImg, COLOR_BGR2GRAY); blur(srcimg...原创 2020-12-07 19:52:24 · 186 阅读 · 0 评论 -
10-图像均值滤波,底层实现
void OpenCVStudy::slot_ProcessImage(){ Mat ResImg; //转灰度图 //cvtColor(srcimg, ResImg, COLOR_BGR2GRAY); int h = srcimg.rows; int w = srcimg.cols; // 3x3 均值模糊,自定义版本实现 Mat dst = srcimg.clone(); for (int row = 1; row < h - ...原创 2020-12-07 19:47:41 · 86 阅读 · 0 评论 -
9-图像对称
Mat src = imread("img.png");Mat dst;// X轴对称flip(src, dst, 0);// Y轴对称flip(src, dst, 1);// XY 对角线对称flip(src, dst, -1);原创 2020-12-07 19:29:23 · 646 阅读 · 0 评论 -
8-图像直方图均衡化
void OpenCVStudy::slot_ProcessImage(){ Mat ResImg,dst; //转灰度图 cvtColor(srcimg, ResImg, COLOR_BGR2GRAY); equalizeHist(ResImg, dst); QImage disImage; matToQImage(dst, disImage); ui.labelResult->setPixmap(QPixmap::fromIm...原创 2020-12-07 19:18:29 · 166 阅读 · 0 评论 -
7-图像插值方法
Mat src = imread("img.png");int h = src.rows;int w = src.cols;float fx = 0.0, fy = 0.0;Mat dst = Mat::zeros(src.size(), src.type());//最邻近插值resize(src, dst, Size(w * 2, h * 2), fx = 0, fy = 0, INTER_NEAREST);//双线性插值resize(src, dst, Size(w * 2, h原创 2020-12-07 19:06:34 · 95 阅读 · 0 评论 -
6-图像通道分解
void OpenCVStudy::slot_ProcessImage(){ Mat ResImg; //转灰度图 //cvtColor(srcimg, ResImg, COLOR_BGR2GRAY); std::vector<Mat> mv; //mv[0],mv[1],mv[2] 分别表示三个通道图像 split(srcimg, mv); QImage disImage; matToQImage(mv[2], d...原创 2020-12-03 18:38:47 · 216 阅读 · 0 评论 -
5-像素算术操作
Mat src1 = imread("img1.bmp");Mat src2 = imread("img2.bmp");// 逻辑操作Mat dst, dst1, dst2, dst3, dst4;bitwise_not(src, dst); //取反bitwise_and(src1, src2, dst1); //与bitwise_xor(src1, src2, dst2); //异或bitwise_or(src1, src2, dst3); //或bitw...原创 2020-12-03 16:17:02 · 88 阅读 · 0 评论 -
4-像素的读写
Mat src = imread("img.bmp"); // 1-直接读取图像像素 int height = src.rows; int width = src.cols; int ch = src.channels(); for (int c = 0; c < ch; c++) { for (int row = 0; row < height; row++) { for (int col = 0; co...原创 2020-12-03 16:03:03 · 84 阅读 · 0 评论 -
3-Mat对象操作
Mat src = imread("img.bmp");// 创建方法 - 克隆Mat m1 = src.clone();// 复制Mat m2;src.copyTo(m2);// 赋值法Mat m3 = src;// 创建空白图像Mat m4 = Mat::zeros(src.size(), src.type());Mat m5 = Mat::zeros(Size(512, 512), CV_8UC3);Mat m6 = Mat::ones(Size(512, 512), C原创 2020-12-03 15:59:06 · 99 阅读 · 0 评论 -
2-色彩空间转换
Mat ResImg; cvtColor(srcimg, ResImg, COLOR_BGR2GRAY); QImage disImage; matToQImage(ResImg, disImage); ui.labelResult->setPixmap(QPixmap::fromImage(disImage)); ui.labelResult->setScaledContents(true);原创 2020-12-03 15:51:25 · 109 阅读 · 0 评论 -
1-图片读取
#include<opencv2/opencv.hpp>#include<iostream>usingnamespacecv;usingnamespacestd;intmain(intartc,char**argv){Matsrc=imread("Image.png",IMREAD_GRAYSCALE);if(src.empty()){printf("couldnotloadimage...原创 2020-12-03 10:25:43 · 55 阅读 · 0 评论