- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 OpenCV学习十:blur、GaussianBlur、medianBlur 、bilateralFilter 图片的模糊、高斯模糊、中值模糊、二值滤波(课程里将模糊与滤波认定为一样) 以及 锐化算子
bilateralFilter 函数说明双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数。 双边滤波器中,输出像素的值依赖于邻域像素的值的...
2018-01-31 16:45:58 1416
原创 OpenCV学习九:line、rectangle、ellipse 、circle、fillPoly 绘制直线、矩形、椭圆、圆形、填充任意图形
#include <stdio.h>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){ //line ellipse rectangle circle fillPoly Mat Pic = Mat::ze...
2018-01-25 18:05:11 2341
原创 OpenCV学习八:图片的亮度对比度调整
原理很简单,就是逐个对各通道像素的值进行修改#include #include using namespace std;using namespace cv;int main(int argc, char** argv){ //原始图片 Mat img1; img1 = imread("C.jpg"); pyrDown(img1, img1, Size(img1.cols/
2018-01-25 17:16:45 447
原创 OpenCV学习七:addWeighted 线性融合函数
void addWeighted(InputArray src1, // InputArray类型的src1,表示需要加权的第一个数组,常常填一个Mat。double alpha, // alpha,表示第一个数组的权重InputArray src2, // src2,表示第二个数组,它需要和第一个数组拥有相同的尺寸和通道数。double beta, // beta,表示第二个...
2018-01-25 16:46:57 728
原创 OpenCV学习六:findContours、drawContours、仿射变换(warpAffine)、RotatedRect区域矫正、获取、ROI设置
函数说明1.void findContours1.1 概述void findContours//提取轮廓,用于提取图像的轮廓(InputOutputArray image,//输入图像,必须是8位单通道图像,并且应该转化成二值的OutputArrayOfArrays contours,//检测到的轮廓,每个轮廓被表示成一个point向量OutputArray hierarc...
2018-01-20 17:55:46 4251
原创 OpenCV学习五:图片矩形区域的读取
#include #include #include using namespace cv;using namespace std;int main(int argc, char** argv){ Mat img = imread("123.jpg",-1);//3通道 //Mat line1 = img.row(40);//读取一行 //Mat line2 = img.c
2018-01-17 20:34:19 3040
原创 OpenCV学习四:图片像素的读、写、修改
特别注意:图片读写的双循环一定是要先写 row ,再写 col ,否则报错!#include #include #include using namespace cv;using namespace std;int main(int argc, char** argv){ Mat img = imread("123.jpg",-1);//3通道 Mat gray = imrea
2018-01-17 19:42:06 440
转载 OpenCV学习三:Mat类详解
目标我们有多种方法可以获得从现实世界的数字图像:数码相机、扫描仪、计算机体层摄影或磁共振成像就是其中的几种。在每种情况下我们(人类)看到了什么是图像。但是,转换图像到我们的数字设备时我们的记录是图像的每个点的数值。例如在上图中你可以看到车的镜子只是一个包含所有强度值的像素点矩阵。现在,我们如何获取和存储像素值可能根据最适合我们的需要而变化,最终可能减少计算机世界内的所有图像
2018-01-17 15:15:25 17727 3
原创 OpenCV学习二:指针操作、saturate_cast
#include #include using namespace cv;using namespace std;int main(int argc, char** argv){ Mat img = imread("123.jpg",-1); int cols = (img.cols - 1)*img.channels(); //列,乘以 img.channels() 是因为
2018-01-17 15:07:36 544 1
原创 OpenCV学习一:imread、cvtColor、namedWindow、imshow、imwrite
#include using namespace cv;using namespace std;int main(int argc, char** argv){ /* 第二个参数: -1:加载原图 IMREAD_UNCHANGED 0 :转为灰度图片加载进来 IMREAD_GRAYSCALE 1 :作为RGB图片加载进来 IMREAD_COLOR */ M
2018-01-17 14:10:15 510
原创 随记
目录Mat 类快速矩阵写法num2StrMat矩阵先声明,后初始化的写法C++的文件读写数字转字符串或者拼接字符串OpenCV 二值化快速写法导入dll文件Opencv Mat与数组互转清空输入缓存区结构体初始化cv::String 与 CString 互转 Mat 类快速矩阵写法 Mat m = (Mat_<int>(2,2)...
2018-01-16 14:36:56 195
原创 C++与opencv学习随记 1 - mser部分
#include #include #include #include #include using namespace cv;using namespace std; //不加这个的话, 就要 std::cout这么写int main (int argc, char * argv[]){ Mat img,gray; img = imread("1.jpg",1); c
2018-01-12 17:02:36 924
转载 matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
1. matlab图像保存说明 matlab中读取图片后保存的数据是uint8类型(8位无符号整数,即1个字节),以此方式存储的图像称作8位图像,好处相比较默认matlab数据类型双精度浮点double(64位,8个字节),自然可以节省很大一部分存储空间。 详细来说imread把灰度图像存入一个8位矩阵,当为RGB图像时,就存入8位RGB矩阵中。例如,彩色图像像素大小是400*3
2018-01-03 11:18:11 11083
转载 以牌照搜题为例,简单分析文字切割与识别部分
转载来自两篇文章:拍照怎么搜题?(上)和拍照怎么搜题?(下) 注:这里讨论分析的仅仅是简单的思路部分,针对特定场景。自然场景下的文本区域检查、切割、识别与这里讨论的内容有一定差别。################################ 上半部分 ########################################前一段时间几个拍照搜题的软件挺流行(比如:...
2018-01-02 13:33:55 2291 1
转载 彩色图片转灰色图片
对于 RGB 彩色图像,图像中的每一个像素是由 R(红)、G(绿)、B(蓝)三原色分三个通道存储不同的数值,一个像素点的颜色便由这三个不同数值的三原色叠加产生。灰度图是一种 R、G、B 三通道值均相同的特殊彩色图像,这种图像与彩色图像一样描述了图片整体和局部的色度和亮度。如果已知一张彩色图像的数值信息,则它的灰度图可以通过以下公式得出:Gray = B; Gray = G; Gray =...
2018-01-02 10:55:44 2949
中心矩原点矩Hu矩Zernike矩的介绍
2018-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人