opencv学习笔记(1)----图像读写;添加噪声
来源:互联网 发布:吹笛子软件下载 编辑:程序博客网 时间:2024/06/05 16:17
前言
学习使用opencv2.4.9 + vs2013 的编译环境,环境配置简单,不多赘述
opencv2各模块功能
opencv_core:包含核心功能,尤其是底层数据结构和算法函数
opencv_imgproc : 包含图像处理函数
opencv_highgui : 包含读写图像及视频函数,以及操作图形用户界面函数
opencv_features2d : 包含兴趣点检测子,描述子和兴趣点匹配框架
opencv_calib3d : 包含相机标定,双目几何估算以及立体视觉函数
opencv_video : 包含运动估算,特征跟踪以及前景提取函数
opencv_objdetect : 包括物体检测函数,如面部识别
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>using namespace cv;void salt(Mat &image, int n);//添加噪声函数int main() { // read an image Mat image = imread("D:\\lena.jpg"); // create image window named "My Image" namedWindow("My Image"); //增加噪点 //salt(image, 3000); // show the image on window imshow("My Image", image); Mat result; // 正数表示水平翻转;0表示垂直翻转;负数表示既有水平,也有垂直 flip(image, result, -1); namedWindow("Output Image"); imshow("Output Image", result); imwrite("output.bmp", result); waitKey(0); return 1;}void salt(Mat &image, int n){ for (int k = 0; k < n; k++) { int i = rand() % image.cols; int j = rand() % image.rows; if (image.channels() == 1) { image.at<uchar>(j, i) = 255; } else if (image.channels() == 3) { image.at<Vec3b>(j, i)[0] = 255; image.at<Vec3b>(j, i)[1] = 255; image.at<Vec3b>(j, i)[2] = 255; } }}
需要注意的几个点
cv::Mat类是用于保存图像及其他矩阵数据的数据结构,默认情况下初始尺寸为0; Mat对象离开作用域后会自动释放内存,避免内存泄漏
Mat使用引用计数和浅拷贝,如果希望创建崭新拷贝,可使用copyTo()方法
Mat的成员函数at(int y, int x)用来存取像素,at方法本身不会进行任何数据类型转换,因此一定要确保指定的数据类型和矩阵中的数据类型一致
灰度图返回unsighed char 类型的向量
彩色图返回3个unsighed char组成的向量,定义为cv::Vec3b;(注意不要和Vec3d类型搞混,今天被这个错误卡了好久)
阅读全文
0 0
- opencv学习笔记(1)----图像读写;添加噪声
- 图像添加噪声【OpenCV学习笔记1】
- Opencv 图像添加噪声
- 【OpenCV】给图像添加噪声
- opencv学习(2)添加椒盐噪声
- OpenCV学习笔记(七)椒盐噪声
- OpenCV给图像添加柏林噪声
- opencv 降低图像亮度 + 添加噪声处理
- 通过opencv给图像添加椒盐噪声
- 【拜小白opencv】26-图像噪声1——椒盐噪声
- 我的OpenCV学习笔记(三):利用操作像素完成简单的图像处理:加入椒盐噪声、图像翻转、改变对比度、图像锐化
- opencv2学习笔记2-操作图像(椒盐噪声)
- OpenCV学习笔记(八)高斯噪声
- OpenCV 2 学习笔记(5): 像素的访问:给图像加入椒盐噪声
- 图像模拟添加(产生)椒盐噪声的OpenCV代码!
- 图像模拟添加(产生)高斯噪声的OpenCV代码!
- 图像去噪的OPenCV添加噪声和去噪
- 使用opencv给图像添加高斯噪声
- Leetcode 392(Java)
- Hibernate查询方式(many to many)
- mongodb学习笔记
- CentOS环境下模拟Hadoop2.7.3环境搭建(虚拟机)
- AppbarLayout实现基本的头部跟随列表滚动效果
- opencv学习笔记(1)----图像读写;添加噪声
- 铱星模块的使用参考手册
- linux网络IPv6
- 故事版xib --view上添加tableview
- Enum使用及原理
- 树莓派下使用opencv
- What Is New in MySQL 5.7之新特性篇
- noi.openjudge_P8787数的划分
- win10下解压方式安装MySQL5.7.18