二维图像处理算法(OpenCV)
fourPieces
这个作者很懒,什么都没留下…
展开
-
sobel求X、Y方向梯度API实现
OpenCV+VS 代码如下:#include <cvInclude.h>#include <iostream>using namespace cv;/************************************************************************//* Sobel算子API实现...原创 2018-03-30 20:20:14 · 2938 阅读 · 0 评论 -
实现类似PS魔棒功能(漫水填充floodfill()) OpenCV
注:此任务解决过程感谢淡彩大神的指点。他做了一个软件ImagePy,可以测试OpenCV实现的流程,也可以看到python源代码。很有用。 软件安装地址:ImagePy 图像处理1. 任务背景为纯色,类似在画图工具中,随意画线。我们希望识别出这些线条的最外圈轮廓,将轮廓内的所有像素(前景)都填充为红色,背景填充为黑色。如下图所示。 2. 尝试过的无效方法:findCon...原创 2018-05-01 15:05:07 · 2595 阅读 · 1 评论 -
opencv访问像素
1. 访问像素的三种方法 ①指针访问:最快 ②迭代器iterator:较慢,非常安全,指针访问可能出现越界问题 ③动态地址计算:更慢,通过at()实现。适用于访问具体某个第i行,j列的像素,而不适用遍历像素2. Mat在内存中存储形式 灰度图的存储形式: RGB的存储形式: 一般情况下,Mat是连续存储的,按行连接。可以通过isContinuous()函数,判断矩阵是...原创 2018-04-13 10:44:29 · 465 阅读 · 0 评论 -
裁剪原图像,得到ROI区域的矩形图像 (findContours()寻找轮廓,图像裁剪) OpenCV
我知道之前用直方图方差找最佳曝光值的算法为什么有问题了。。。 因为我新增了ROI区域裁剪,是基于轮廓提取找到ROI区域的。而我在测试的时候,黑色背景板不够大,实际拍摄的图片最外面的轮廓其实是黑色背景板的,没有成功把ROI区域裁剪出来。本博文的代码,我用自己画的图片,能够得到正确的裁剪后的ROI图片。而用测试时相机拍摄的图片,得到的裁剪结果却与原图像几乎一模一样。当然,裁剪后的图片中仍含有...原创 2018-04-17 11:53:06 · 8423 阅读 · 4 评论 -
给图像添加各种噪声
1. 简介下面简单介绍两种图像噪声,即椒盐噪声和高斯噪声。(1) 椒盐噪声 椒盐噪声也称脉冲噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。 图像模拟添加椒盐噪声是通过:随机获取像素点,并设置为高亮度点和低亮度点来实现的。(2) 高斯噪声 高斯噪声是指概率密度函数服从高斯分布的一类噪声。 特别的,如果一个噪声,它的幅度分布...原创 2018-04-17 14:25:05 · 23603 阅读 · 2 评论 -
opencv 窗口显示图像,通过键盘控制 调曝光&保存
问题描述: OpenCV 窗口界面显示相机采集的图像;带有键盘控制,调节曝光和保存图像。1. OpenCV - 响应键盘事件键盘不像鼠标那样,键盘是没有句柄的。因此,可通过等待键盘输入来键盘事件:方式1: 不锁定键盘int key = cvWaitKey(10);//等待10秒方式2: 锁定键盘int key = cvWaitKey(0); //不明确等待时...原创 2018-05-01 15:05:53 · 1496 阅读 · 0 评论 -
复制(部分复制,完全复制) Mat对象
1. 部分复制注意: (1) 部分复制:不会复制Mat对象的数据部分(即指针指向的矩阵),只会复制它的头(包括矩阵的尺寸/存储方法/存储地址等信息)和指针部分(指向存储所有像素值的矩阵)。方法1:Mat B(A);//B是A的部分复制方法2(创建与Mat对象大小,类型相同的复制图像(数据可以自行设置)):Mat B;B.create(A.size(), A.type());...原创 2018-04-16 09:52:10 · 2502 阅读 · 0 评论 -
创建Mat图像
方法1:cv::Mat::Mat构造函数#define HEIGHT 2048 //行rows#define WIDTH 1024 //列cols //CV_8UC1:图像的typpe。8:8位,UC:unsigned char,1:深度//Scalar()是向量,表示初始化每个像素值是多少,向量长度与通道数目(深度)一致cv::Mat image(HEIGHT, WIDTH, C...原创 2018-04-16 09:11:54 · 1996 阅读 · 0 评论 -
计算Mat类型的均值和标准差 OpenCV
Mat img; Scalar mean; //均值Scalar stddev; //标准差cv::meanStdDev( img, mean, stddev ); //计算均值和标准差double mean_pxl = mean.val[0]; double stddev_pxl = stddev.val[0];原创 2018-04-09 19:48:29 · 7170 阅读 · 0 评论 -
泊松图像融合(Seamless cloning)的原理 及 API实现
参考网址:泊松融合原理及C ++算法实现注:本文大部分参考上面博客,加入了自己的理解和整理。感谢原博主的精辟讲解。本文只讲“Poisson Image Editing”第一个功能,普通无缝融合功能。我将直接给出离散形式实现方法,算法流程。图像合成是通过将源图像中一个物体或者一个区域嵌入到目标图像生成一个新的图像。在对图像进行合成的过程中,为了使合成后的图像更自然,合成边界应当保持无缝。但如果原图像...原创 2018-03-30 20:25:13 · 12463 阅读 · 2 评论 -
寻找轮廓findContours()、寻找凸包convexHull()、绘制轮廓drawContours() OpenCV
参考网址: findContours函数参数详解1. 寻找轮廓:findContours函数(1)原型:findContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point()); ...原创 2018-04-23 20:39:43 · 2011 阅读 · 0 评论