自定义博客皮肤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 251

原创 绘制形状与文字

1、cv::Point与cv::Scalar·Point表示2D平面上的一个点x,yPoint 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 87 1

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

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

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

原创 图像混合

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

2021-04-26 09:34:25 94 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 61

原创 Mat对象的使用

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

2021-04-25 09:22:49 262

原创 矩阵的掩膜操作

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_castSaturate_cast(-100),返回0;Saturate_cast(28

2021-04-23 17:18:49 164

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

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 65

空空如也

空空如也

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

TA关注的人

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