自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 图像模糊

1、模糊原理 Smooth/Blur是图像处理中最简单和常用的操作之一 使用该操作的原因之一是为了给图形预处理时候降低噪声 使用Smooth/Blur操作其背后的数学的卷积计算 通常这些卷积算子计算都是线性操作,所以又叫线性滤波 2、 3、中值滤波 统计排序滤波器 中值对椒盐噪声有很好的一直作用(椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比

2021-05-07 09:24:36 530

原创 绘制形状与文字

1、cv::Point与cv::Scalar ·Point表示2D平面上的一个点x,y Point p; p.x = 10; p.y = 8; 或者 p = Point(10, 8); ·Scalar表示四个元素的向量,即长度为4的数组,最多存储四个元素 Scalar(a, b, c); //a = blue, b = green, c = red表示RGB三个通道 2、绘制线、矩形、圆、椭圆等基本几何图形 ·画线–cv::line(LINE_4 \ LINE_8 \ LINE_AA) ·画椭圆–cv:

2021-04-27 09:48:16 153 1

原创 调整图像亮度与对比度

1、图像变换可以看做如下: · 像素变换----点操作 · 邻域操作----区域 调整图像亮度和对比度属于像素变换–点操作 2、相关API Mat new_image = Mat::zeros(image.size(), image.type()); //创建一张跟原图像大小和类型一致的空白图像、像素值初始化为0 saturate_cast<uchar>(value) //确保值大小范围为0~255之间 Mat.at<Vec3b>(y, x)[index] = value //给每

2021-04-26 10:13:13 266 1

原创 图像混合

1、线性混合操作 其中α的取值范围为0~1之间 2、相关的API(addWeighted) void cv::addWeighted( InputArray src1, // 输入图像1 double alpha, //输入图像1的alpha值 InputArray src2, //输入图像2 double beta, //输入图像2的alpha值 double gamma, //gamma值 OutputArray, dst, //输出图像 int dtype = -1 ) Note:两张输入图像的大小

2021-04-26 09:34:25 140 1

原创 图像操作

1、读写图像 ·imread可以指定加载为灰度或者RGB图像 `imwrite保存图像文件,类型由扩展名决定 2、读写像素 ·读一个GRAY像素点的像素值(CV_8UC1) Scalar intensity = img.at<uchar>(y, x); 或者 Scalar intensity = img.at<uchar>(Point(x, y)); ·读一个RGB像素点的像素值 Vec3f intensity = img.at<Vec3f>(y, x); float

2021-04-25 10:02:24 94

原创 Mat对象的使用

1、Mat对象与IplImage对象 Mat对象是图像数据结构,自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分为头部和数据两个部分。 IplImage是c语言风格的数据结构,需要开发者自己分配和管理内存,容易导致内存泄露问题。 2、 Mat对象构造函数以及常用方法 3、Mat对象使用 ·部分复制:一般情况下只会复制Mat对象的头和指针部分,不会复制数据部分 Mat A = imread(imgFilePath); `完全复制:如果想把Mat对象的头部和数据部分一起复制,可以通过一下两个AP

2021-04-25 09:22:49 326

原创 矩阵的掩膜操作

1、获取图像像素的指针 CV_Assert(myImage.depth() == CV_8U); Mat.ptr(int I = 0) 获取像素矩阵的指针,索引i表示第几行,从0开始计行数; 获取当前行指针const uchar* current = myImage.ptr(row); 获取当前像素点P(row, col)的像素值p(row, col) = current[col] 2、像素范围处理saturate_cast Saturate_cast(-100),返回0; Saturate_cast(28

2021-04-23 17:18:49 218

原创 加载、修改、保存图像

1、加载图像(cv::imread):imread功能是加载图像文件成为一个Mat对象,第一个参数是图像文件的名称,第二个参数是图像文件的类型。 IMREAD_UNCHANGED(<0)表示加载原图,不做处理;IMREAD_GRAYSCALE(0) 表示将原图作为灰度图加载进来;IMREAD_COLOR(>0) 表示把原图作为RGB图像加载进来。 注:OpenCV支持JPG、PNG、TIFF等常见图像格式文件的加载。 2、显示图像(cv::namedWindow 与cv::imshow) 常见用

2021-04-23 11:39:22 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除