opencv
风贰中
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
形态学操作
l开操作- openl闭操作- closel形态学梯度- Morphological Gradientl顶帽 – top hatl黑帽 – black hat开操作- open先腐蚀后膨胀 可以去掉小的对象,假设对象是前景色,背景是黑色morphologyEx(src, dest, CV_MOP_BLACKHAT, kernel);- Mat src – 输入图像- Mat dest – 输出结果- int OPT – CV_MOP_OPEN/ CV_MOP_CLOS...原创 2021-04-17 00:45:56 · 174 阅读 · 0 评论 -
调整图像亮度与对比度
图像变换可以看作如下: 像素变换 – 点操作 邻域操作 – 区域 调整图像亮度和对比度属于像素变换-点操作 Mat new_image = Mat::zeros( image.size(), image.type() ); 创建一张跟原图像大小和类型一致的空白图像、像素值初始化为0saturate_cast<uchar>(value)确保值大小范围为0~255之间Mat.at<Vec3b>(y,x)[index]=value 给每个像素点每个通道赋值原创 2021-04-12 00:05:25 · 122 阅读 · 0 评论 -
膨胀与腐蚀
形态学操作(morphology operators)-膨胀图像形态学操作 – 基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学 形态学有四个基本操作:腐蚀、膨胀、开、闭 膨胀与腐蚀是图像处理中最常用的形态学操作手段形态学操作-膨胀跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值用来替换锚点的像素,其中B作为结构体可以是任意形状lgetStructuringElement(int shape, Size原创 2021-04-12 00:11:55 · 135 阅读 · 0 评论 -
模糊图像
模糊原理Smooth/Blur 是图像处理中最简单和常用的操作之一 使用该操作的原因之一就为了给图像预处理时候减低噪声 使用Smooth/Blur操作其背后是数学的卷积计算通常这些卷积算子计算都是线性操作,所以又叫线性滤波假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值。每次移动一个像素格。归一l高斯模糊- GaussianBlur(Mat ...原创 2021-04-12 00:10:14 · 199 阅读 · 0 评论 -
opencv图像混合
#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace cv;int main(void) { Mat src1, src2, dst; src1 = imread("C:/Users/Robin/Pictures/2.jpg"); src2 = imread("C:/Users/Robin/Pictures/3.jpg"); if (!src1.原创 2021-04-04 23:16:21 · 137 阅读 · 0 评论 -
读写图像
imread 可以指定加载为灰度或者RGB图像 Imwrite 保存图像文件,类型由扩展名决定读一个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 blue = intensit原创 2021-04-04 23:12:09 · 181 阅读 · 0 评论 -
Mat对象使用-四个要点和Mat对象创建
l输出图像的内存是自动分配的l使用OpenCV的C++接口,不需要考虑内存分配问题l赋值操作和拷贝构造函数只会复制头部分l使用clone与copyTo两cv::Mat::Mat构造函数 Mat M(2,2,CV_8UC3, Scalar(0,0,255)) 其中前两个参数分别表示行(row)跟列(column)、第三个CV_8UC3中的8表示每个通道占8位、U表示无符号、C表示Char类型、3表示通道数目是3,第四个参数是向量表示初始化每个像素值是多少,向量长度对应通道数目一致创建多维数原创 2021-04-04 23:09:14 · 283 阅读 · 0 评论 -
函数调用filter2D功能
定义掩膜:Mat kernel = (Mat_<char>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); filter2D( src, dst, src.depth(), kernel );其中src与dst是Mat类型变量、src.depth表示位图深度,有32、24、8等。#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>原创 2021-04-04 23:06:52 · 224 阅读 · 0 评论 -
获取图像像素指针和像素范围处理saturate_cast<
CV_Assert(myImage.depth() == CV_8U); Mat.ptr<uchar>(int i=0) 获取像素矩阵的指针,索引i表示第几行,从0开始计行数。获得当前行指针const uchar* current= myImage.ptr<uchar>(row ); 获取当前像素点P(row, col)的像素值 p(row, col) =current[col]lsaturate_cast<uchar>(-100),返回 0。lsaturat原创 2021-04-04 23:04:50 · 273 阅读 · 0 评论 -
保存图像(cv::imwrite)
保存图像文件道指定目录路径只有8位,16位的PNG, JPG, Tiffy文件格式而且时单通道或者三通道的BGR的图像才通过这种方式保存保存PNG格式的时候可以保存透明通道的图片可以指定压缩参数#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(void) { Mat src = imread("C:/Users/Robin/Pictures/test.j原创 2021-04-04 23:02:11 · 11192 阅读 · 0 评论 -
加载图像(cv::imread)和显示图像(cv::namedWindos与cv::imshow)
第一个参数表示图像文件名称imread第二个参数,表示加载的图像时什么类型,支持常见的三个参数值IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来namedWindow功能时创建一个OpenCv窗口,它时由opencv自动创建与释放,你无需销毁他常见的用法namedWindow("WindosTitle ",WIN..原创 2021-04-03 22:24:54 · 902 阅读 · 0 评论 -
配置
视图----其他---属性管理器debug x64属性vc++目录包含目录include /include opencv2/include opencv库目录 build x64 vc14 lib链接器 输入 附加依赖项opencv_world346d.lib#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(void) { Mat sr.原创 2021-04-03 22:23:07 · 112 阅读 · 0 评论
分享