opencv进行5种图像变化:

一、高斯噪声:

#include<opencv2/opencv.hpp>
#include<iostream>
#include "../../opencv/build/include/opencv2/highgui/highgui_c.h"
using namespace cv;
using namespace std;void gaussian_noise(Mat& image);
int main(int artc, char** argv) {Mat src = imread("E:/日出.jpg");namedWindow("高斯日出", CV_WINDOW_AUTOSIZE);imshow("高斯日出", src);gaussian_noise(src);waitKey(0);return 0;
}
void gaussian_noise(Mat& image) {Mat noise = Mat::zeros(image.size(), image.type());randn(noise, (15, 15, 15), (30, 30, 30));Mat dst;add(image, noise, dst);imshow("gaussian noise", dst);
}

效果图:https://raw.githubusercontent.com/zhengmuhe/deep-learning/master/%E9%AB%98%E6%96%AF%E5%99%AA%E5%A3%B0.jpg?token=AMAQWVH6WXUNNCRF4BG5OCK42K5X6

二、图像腐蚀:

#include<opencv2/highgui/highgui.hpp>        //opencv  highgui模块头文件
#include<opencv2/imgproc/imgproc.hpp>        //opencv 图像处理头文件
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;int main()
{Mat image = imread("E:/日出.jpg");imshow("原图", image);Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//调用getStructuringElement,参数形式见下Mat dstimage;erode(image, dstimage, element);       //调用erode,参数形式见下imshow("腐蚀图", dstimage);waitKey(0);return 0;
}

效果图:https://raw.githubusercontent.com/zhengmuhe/deep-learning/master/%E5%9B%BE%E5%83%8F%E8%85%90%E8%9A%80.jpg?token=AMAQWVBTK3SCGNROA3WVFHS42K55O

函数调用:

getStructuringElement:Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));

参数形式:第一个参数表示内核的形状,有三种可以选择:矩形:MORPH_RECT;交叉形:MORPH_CROSS;椭圆形:MORPH_ELLIPSE; 第二个参数表示内核的尺寸。

erode:erode(image, dstimage, element); 

参数形式:第一个参数表示原图像,第二个参数表示目标图像,第三个参数表示腐蚀操作的内核(调用getStructuringElement)

三、图像模糊:

#include<opencv2/opencv.hpp>
#include<highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
using namespace std;
int main()
{Mat srcImage = imread("E:/日出.jpg");imshow("原图", srcImage);//均值滤波操作Mat dstImage;blur(srcImage, dstImage, Size(10, 10));//调用blur,参数形式见下imshow("模糊图", dstImage);waitKey(0);return 0;
}

效果图:https://raw.githubusercontent.com/zhengmuhe/deep-learning/master/%E5%9B%BE%E5%83%8F%E6%A8%A1%E7%B3%8A.jpg?token=AMAQWVEYUQ4HVBZCOMU6NMS42K6BI

函数调用:

blur:blur(srcImage, dstImage, Size(10, 10));

参数形式:第一个参数表示原图,第二个参数表示目标图,第三个参数表示内核的大小,一般这样写Size( w,h )来表示内核的大小( 其中,w 为像素宽度, h为像素高度)。

四、canny边缘检测:

#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
using namespace std;
int main()
{Mat srcImage = imread("E:/日出.jpg");imshow("原图", srcImage);//参数定义Mat edge, grayImage;//步骤一:将原图像转化为灰度图像cvtColor(srcImage,grayImage,COLOR_BGR2GRAY);//调用cvtColor,参数形式见下//步骤二:先使用3x3内核来降噪blur(grayImage, edge, Size(3, 3));//调用blur,参数形式见下//步骤三:运行canny算子Canny(edge, edge, 3, 9, 3);//调用Canny,参数形式见下imshow("效果图", edge);waitKey(0);return 0;
}

效果图:https://raw.githubusercontent.com/zhengmuhe/deep-learning/master/canny%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B.jpg?token=AMAQWVG6G4OZILYBYIEU2XC42K6EY

调用函数:

cvtColor:cvtColor(srcImage,grayImage,COLOR_BGR2GRAY);

参数形式:第一个参数表示原图,第二个参数表示目标图,第三个参数COLOR_BGR2GRAY表示灰度图;

blur:blur(grayImage, edge, Size(3, 3));

参数形式:第一个参数表示原图,第二个参数表示目标图,第三个参数表示内核的大小,一般这样写Size( w,h )来表示内核的大小( 其中,w 为像素宽度, h为像素高度)。

Canny:Canny(edge, edge, 3, 9, 3);

参数形式:第一个参数表示输入图像,这个必须是单通道的,即灰度图。第二个参数表示输出边缘图像 ,也是单通道的,但是是黑白的。第三个参数表示第一个阈值;第四个参数表示第二个阈值。第五个参数表示算子内核大小 。Canny 算法发现输入图像的边缘而且在输出图像中标识这些边缘。两个阈值中小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。

五:镜像:

#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
using namespace std;
int main()
{Mat srcImage = imread("E:/日出.jpg");imshow("原图", srcImage);//参数定义Mat dstImage1,dstImage2,dstImage3;flip(srcImage, dstImage1, -1);//调用flip,参数形式见下//flip(srcImage, dstImage1, 0);//flip(srcImage, dstImage1, 1);imshow("效果图", dstImage1);waitKey(0);return 0;
}

效果图:https://raw.githubusercontent.com/zhengmuhe/deep-learning/master/%E9%95%9C%E5%83%8F.jpg?token=AMAQWVDWNEJVIACZ6GODPC242K6LA

函数调用:

flip:flip(srcImage, dstImage1, -1);

参数形式:第一个参数表示原图,第二个参数表示目标图,第三个参数是旋转类型,0代表x轴旋转,任意正数代表y轴旋转,任意负数代表x和y轴同时旋转。

转载于:https://www.cnblogs.com/double-points/p/10833938.html

opencv进行5种图像变化:相关推荐

  1. 【OpenCV】5种图像滤波辨析:方框、均值、高斯、中值、双边

    from:http://www.07net01.com/2015/12/1003192.html 图像滤波 什么是图像滤波 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预 ...

  2. OpenCV计算机视觉编程之三种图像像素的遍历方法

    为了构建计算机视觉应用程序,需要学会访问图像内容,有时也要修改或创建图像,如何操作图像的像素,就需要遍历一幅图像并处理每一个像素.现在我们就来介绍OpenCV三种图像像素的遍历方法: 一. 用cv:: ...

  3. OpenCV——几种图像滤波总结(python实现和c++实现)

    OpenCV--图像滤波原理及实现 4.1 简介 图像的实质是一种二维信号,滤波是信号处理中的一个重要概念.在图像处理中,滤波是一种非常常见的技术,它们的原理非常简单,但是其思想却十分值得借鉴,滤波是 ...

  4. [matlab数字图像处理2]对一张图像进行缩放,观察其分辨率,降低灰度分辨率两种模式,观察图像变化;

    %任务:对一张图像进行缩放,观察其分辨率,降低灰度分辨率两种模式,观察图像变化: %本文使用matlab2021a软件对图像进行处理 clear; clc; close all %首先获取一个灰度图像 ...

  5. 使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones)

    使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones) 1. 效果图 2. 原理 3. 源码 参考 这篇博客将介绍如何只使用基本的图 ...

  6. OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))

    Mat - 基本图像容器 目的 从真实世界中获取数字图像有很多方法,比如数码相机.扫描仪.CT或者磁共振成像.无论哪种方法,我们(人类)看到的是图像,而让数字设备来"看"的时候,则 ...

  7. task2:opencv的python接口图像储存、色彩空间、

    task2:图像储存.色彩空间.图像的算数运算. 笔记: 使用managers.WindowManager抽象窗口和键盘: main.py: import cv2 from manager impor ...

  8. opencv roberts算子_图像之HOG特征描述算子-行人检测

    4.1 简介 本次任务将学习一种在深度学习之前非常流行的图像特征提取技术--方向梯度直方图(Histogram of Oriented Gradients),简称HOG特征.HOG特征是在2005年C ...

  9. Opencv(python)图像梯度和边缘检测算法

    1.图像梯度 图像梯度计算的是图像的边缘信息 ,图像梯度计算的是图像变化的速度.对于图像的边缘部分,其灰度值变化较大,梯度值也较大,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小.图像 ...

最新文章

  1. 7 种 Javascript 常用设计模式学习笔记
  2. 前四次作业--个人总结
  3. R语言观察日志(part7)--RMarkdwon之代码块
  4. [你必须知道的.NET] 开篇有益
  5. Appium安装过程
  6. 第二篇:稳定性之如何有条不紊地应对风险?
  7. 疫情之后,有哪些巨大的商业机会?
  8. 树型DataGrid的思路
  9. Flex builder3 序列号生成器
  10. Echarts3 主题设置
  11. [通用]汉字按照拼音字母排序
  12. 微信开发者工具整个是个浏览器
  13. NVIDIA CUDA各版本下载链接(更新至2019-12-11,包含最新10.2版本)
  14. linux安装包安装方法
  15. TechnoStar.Venus-Pre.3.0 有限元建模处理器
  16. 杭电 Prime Ring Problem
  17. 亚马逊北美站-怎么确定你的产品是做FCC认证还是FCC ID认证呢?
  18. gnu coreutils utime.c 源码分析
  19. 初识Tomcat - 简单用户管理系统的开发
  20. 计算机上mac怎么用,教你如何在Mac苹果电脑上用Office办公软件

热门文章

  1. mysqluuid去除横岗
  2. java语言的运行平台,威力加强版
  3. php 监控nginx日志,nginx启用status监控服务器状态的方法详解
  4. pip设置国内镜像_virtualenv安装、使用、pip国内镜像替换---windows 0117-2020
  5. 主机硬件系统主板状态 vmware_电脑主机启动不了怎么办?
  6. linux mask 特殊权限位,Linux 特殊权限
  7. php 处理像素点数组,求助:php处理这个数组
  8. python质量转换程序,Python库的文件转换成MP3和设置它们的质量
  9. android 监听 h5 window,H5嵌入APP后,通过window.WebViewJavascriptBridge原生APP与H5之间交互...
  10. c+mysql+sslmode_MySQL配置SSL主从复制