- 博客(16)
- 资源 (4)
- 收藏
- 关注
原创 OpenCV学习第十四篇:图像金字塔-上采样和降采样
图像金字塔: 1.在图像处理中,经常需要调整图像大小,最常见的就是放大和缩小,几何变换也可以实现图像放大和缩小 2.一个图像金字塔式一系列的图形组成,最底下一张图像尺寸最大,最上方的图形尺寸最小,从空间上从上向下看,就像一个金字塔分类 高斯金字塔-对图像进行降采样 拉普拉斯金字塔-重建一张图像高斯金字塔式从底向上,逐层降采样得到 降采样之后图像大小是原图像MXN的M/2xN/2,就是对原图...
2017-11-30 21:30:37 2134
原创 unity3d使用感触(一个新公司的项目负责人的感触)
首先我呆的是一个新公司,真的才成立几个月的那种,一开始说会给我招一个帮手的,后来发现我是在做梦!做了几个月,项目也都是改来改去,ui改了三次,功能也是不停的加加减减,这样做项目,我个人觉得肯定不行的,自己非常清楚项目有很大问题,框架不清晰,bug没人测试,前端,网络,模型,ui,图形学,shader都需要我去负责,第一次感觉到压力辣么大,我就抱怨一次,小公司的信任真的很成问题,各位要慎重!
2017-11-30 18:02:54 2173
原创 OpenCV学习第十三篇:提取水平和垂直线(去除干扰线)
1.结构元素 可以是任意形状的结构元素:矩形,圆,直线,磁盘形状,砖石形状等 2.提取步骤 输入图像彩色图像imread 转换为灰度图像cvtColor 转换为二值图像adaptiveThreshold 定义结构元素 开操作(腐蚀+膨胀)提取水平和垂直线 3.api adaptiveThreshold-转化为二值图像( Mat src(输入灰度图像), Mat dest(二值图...
2017-11-29 21:03:44 13847 5
原创 OpenCV学习第十二篇:带透明通道图像合成(缩放,旋转,和ROI)
第一步:获取素材图片 Mat src, dst; src = imread("F:/识图/底图.PNG", 1); dst = imread("logo", -1);【ps:这里需要注意的是透明度图片获取,后面的参数带-1】 第二步:缩放LogoMat zoomPrint( Mat src,float zoom) { resize(src, src, Size(0,...
2017-11-29 10:18:05 4471 2
原创 OpenCV学习第十一篇:形态学操作
开操作-open——CV_MOP_OPEN先腐蚀,后膨胀 可以去掉小的对象,假设对象是前景色,背景是黑色 相关api Mat kernel = getStructuringElement(MORPH_RECT, Size(11, 11), Point(-1, -1)) morphologyEx(src, dst, CV_MOP_GRADIENT, kernel)#include ...
2017-11-21 21:41:57 716
原创 OpenCV学习第十篇:图像模糊二
1.中值滤波 2.双边滤波中值滤波统计排序滤波器 中值对椒盐噪声有很好的抑制作用 中值滤波的意思是绿色框框区域内的像素点的值,从小到大排序,去中间的值给正中间的值,也就是用124替换150,最大值和最小值滤波也是同样的道理,用最大值或者最小值替换中间的值!双边滤波均值模糊无法克服边缘像素信息丢失缺陷,原因是均值滤波是基于平均权重 高斯模糊部分克服了该缺陷,但是无法完全避免,应为没有考虑像
2017-11-20 21:48:19 621
原创 OpenCV学习第九篇:图像模糊(卷积)
模糊原理: Smooth/Blur是图像处理中最简单和常用的操作之一 使用该操作的原因之一就为了给图像预处理时候减低噪声 使用Smooth/Blur操作其背后是数学的卷积计算 通常这些卷积算子计算都是线性操作,所以又叫线性滤波 假设6x6的图像像素点矩阵 黄色3x3区域代表算子卷积过程: 6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像素点值之和取平均值赋给中心红色...
2017-11-15 20:39:10 2731 1
原创 OpenCV学习第八篇:绘制形状和文字
本章知识点: 1.使用cv::Point和cv::Scalar Point p; p.x = 10; p.y = 8; 或者 p=point(10,8);Scalar表示四个元素的向量 Scalar(a,b,c);//a=blue,b=green,c=red表示RGB三个通道2.绘制线,矩阵,圆,椭圆等基本几何形状 画线 cv::line(LINE_4\LINE_8\LINE_AA)...
2017-11-14 21:45:06 513
原创 3DMAX学习第一篇:为啥学习3DMAX?
为啥我作为一个u3d程序员,会学习3dmax呢?这就不得不从图形和模型效果说起了! 首先:我们遇到的情况,可能有模型人员给我们的模型,有些参数可能不是我们想要的,特别是当模型外包出去之后,外包人员不按照你给的要求,会出现各种问题,例如很简单的,有的模型uv特别大,有的模型uv特别小,有的模型uv和法线之类的反了,然而我们在程序上没有太大的办法去处理这些问题,就很烦心,还有一个最主要的是我们公司没有
2017-11-14 16:16:51 984
原创 OpenCV学习第七篇:调整图像亮度和对比度
我们经常遇到需要调整图片亮度和对比度的地方: Mat new image = Mat::zeros(iamge.size(),image.type()); 创建一张跟原图像大小和类型一致的空白图像,像素值初始化为0; saturate_cast(value)确保值在0-255之间; Mat.at(y,x)[index] = value每个像素点每个通道赋值 这里是测试代码:#include...
2017-11-13 19:24:10 2728
原创 OpenCV学习第六篇:图像混合
好快啊,都到了第六篇了,虽然以前学过图形学,学过shader,感觉接触这个也不是很吃力!加油! 主要思想: 这里主要是图像混合的几种手段,其实和shader中的是一样的,没多大区别: 方法一: 使用: addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst); 方法二: 使用: add(src1, src2, addmap, Ma
2017-11-13 18:01:17 377
原创 OpenCV学习第五篇:图像操作
1.读写图像 imread可以加载指定的RGB图像 imwrite保存图像文件,类型由扩展名决定 2.读写像素 int gray = dst.at(row,col)读取指定行列的像素值 这里是代码:#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace cv;using name
2017-11-11 21:01:23 334
原创 OpenCV学习第四篇:Mat对象
定义:Mat对象是OpenCV2.0之后引进的图像数据结构,自动分配内存,不存在内存泄漏的问题,是面向对象的数据结构,分了两部分,头与数据部分Mat对象构造函数 Mat() Mat(int rows,int cols, int type) Mat(Size size,int type) Mat(int rows,int cols,int type,const Scalar&S) Mat(S
2017-11-11 10:55:57 707 1
原创 OpenCV学习第三篇:图片的掩膜操作(实现图像的对比度调整)
掩膜操作实现图像的对比度调整 矩阵的掩膜操作十分简单,根据掩膜来重新计算每个像素的像素值,掩膜(mask也被称为kernel) I(i,j) = 5* I(i,j)-[I(i-1,j)+I(i+1,j)+I(i,j-1)+I(i,j+1)] 我们的核心思想是对图片中的每个像素都做此操作,就是进行上面的公式! —–分解形式 —–使用内置掩膜函数 利用getTickCount...
2017-11-10 21:30:57 4912
原创 OpenCV学习第二篇:加载,修改和保存图像(复习)
1.加载图像:cv::imread imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件的名称 第二个参数,表示加载的图像是什么类型,支持常见的三个参数值 IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变 IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来 IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来 PS:
2017-11-10 20:18:52 567 1
原创 OpenCV学习第一篇:开发环境搭建以及显示电脑中的图片
第一步:我们下载好了opencv安装在文件内,位置自选,我的是这样的,这一步最简单 第二步:我的电脑右键属性-高级系统设置-环境变量-系统变量-Path 加上;D:\opencv\build\x64\vc14\bin,特别注意分号!步骤如图 第三步:相信你已经装好了vs2015,我们新建vc++项目,注意选择空项目 第四步:我们开始部署vs的开发环境 到这里为止环境部署
2017-11-10 13:12:25 368
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人