- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 PCL和Opencv中的flann的冲突问题
解决PCL和Opencv中的flann的冲突问题包含目录中把PCL的include放到opencv的include前面即可。
2020-11-19 20:20:36
826
原创 unity中自定义窗口的扩展
1,新建C#脚本命名为MyWindowEditor脚本内容如下:using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;public class MyWindowEditor : EditorWindow { [MenuItem("GameOb...
2018-11-06 21:29:47
632
原创 unity中Inspector属性面板的扩展三
扩展自带的主键属性,比如说Main Camera1.新建C#脚本,命名为CameraEditorusing System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;[CustomEditor(typeof(Camera))]public class Cam...
2018-11-06 20:16:34
994
原创 unity中Inspector属性面板的扩展二
紧接着上一节1.在属性面板中扩展进度值滑动条 其中ChangeInspector脚本中:public float slideValue = 0.8f;using System.Collections;using System.Collections.Generic;using UnityEngine;public class ChangeInspector : MonoB...
2018-11-06 19:50:24
2490
原创 unity中Inspector属性面板的扩展一
添加属性面板中的“选择贴图”和“窗口坐标”1.新建C#脚本ChangeInspectorusing System.Collections;using System.Collections.Generic;using UnityEngine;public class ChangeInspector : MonoBehaviour { public Texture textu...
2018-11-06 18:49:44
6864
原创 unity中菜单按钮的扩展
1.首先新建C#脚本,命名为MenuItemTool2.打开MenuItemTool脚本,编写代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;public class MenuItemTool : MonoBehaviour {...
2018-11-05 19:21:09
1000
翻译 opencv学习之------图像平移
图像的平移操作是将图像的所有像素坐标进行水平或者垂直方向的移动,也就是所有像素点按照给定的偏移量在水平方向上沿X轴,垂直方向上沿y轴移动。 平移变换分为两种类型:图像大小变换和图像大小不变。第一种类型保证图像平移的完整信息,第二种图像原始信息部分可能会有一部分丢失。 代码如下:#include <opencv2/imgproc/imgproc....
2018-09-07 22:19:12
4653
转载 opencv学习之--------坐标映射(remap重映射)
图像的坐标映射是通过原图像与目标图像之间建立一种映射关系,这种映射关系有两种,一种是计算原图像任意像素在映射后图像的坐标位置,另一种是计算变换后图像任意像素反映射在原图像的坐标位置。opencv中提供重映射等操作,其中重映射就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程,需要获得一些插值为非整数像素的坐标。对于原图像和目标图像,满足下式:G(x,...
2018-09-06 21:05:47
19948
4
翻译 opencv学习之------Mat基本操作
opencv中提供了许多Mat类的成员函数应用方法,在实际的应用场景中,我们选择适宜的函数方法来实现相应的功能,下图是Mat类常用的函数及其相应的功能。用法示例:#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include <iostream>...
2018-08-28 16:19:24
252
原创 OpenCV学习之-------Mat类常用的构造方法
Mat类常用的构造方法如下: 无参构造方法: Mat::Mat() 创建行数为rows,列为col,类型为type的图像(图像元素类型,如CV_8UC3等) Mat::Mat(int rows, int cols, int type) 创建大小为size,类型为type的图像 Mat::Mat(Size size, int type) 创建行...
2018-08-10 14:31:54
2538
原创 C#中类型转换方法
C#中内置了很多类型转换方法如下:序号 方法 & 描述 1 ToBoolean 如果可能的话,把类型转换为布尔型。 2 ToByte 把类型转换为字节类型。 3 ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。 4 ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。 ...
2018-07-30 19:21:08
1037
原创 C#中的标识符与关键字
标识符标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。 标识符中的第一个字符不能是数字。 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \。...
2018-07-30 13:33:10
2057
1
原创 C#学习中关于输入输出中的一些细节问题
Console.Write("Hello World!");Console.WriteLine("Hello World!");第一个是输出后不换行。 第二个是输出后自动换行。Console.ReadKey();这一句代码的作用是为了在控制台窗口停留一下,直到敲击键盘为止。不然运行时,"Hello World!" 这句话会在控制台窗口一闪而过,没法查看。Console.Re...
2018-07-27 14:32:34
264
转载 opencv学习之-----图像对比度、亮度值调整
在图像像素公式g(x)=a*f(x)+b其中:参数f(x)表示源图像像素。 参数g(x) 表示输出图像像素。 参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度。 参数b通常被称为偏置(bias),常常被用来控制图像的亮度。为了访问图像的每一个像素,我们使用这样的语法: image.at<Vec3b>(y,x)[c]其中,y是像素所在的行,...
2018-07-25 19:55:08
4594
1
转载 OpenCV学习之--------Trackbar(轨迹条)函数的创建和使用
createTrackbar函数的作用:可以在显示图像的窗口快速创建一个滑动控件,用于手动调节阈值,效果非常直观。函数定义如下: int createTrackbar(conststring& trackbarname, conststring& winname, int* value, int count, TrackbarCallback onChange=0,void...
2018-07-25 19:14:44
1123
原创 opencv学习之------分离颜色通道用到的split函数和合并用到的merge()函数
(一)split函数将一个多通道数组分离成几个单通道数组用到的是进行通道分离的split函数。split函数的C++版本有两个原型,他们分别是:1. C++: void split(const Mat& src, Mat*mvbegin);2. C++: void split(InputArray m,OutputArrayOfArrays mv);两种定义的用法相同...
2018-07-25 15:34:53
428
原创 opencv学习之------在算法设计中使用策略模式
一个设计模式是一个可靠的、可重用的方案,用于解决软件设计中频繁出现的问题。策略设计模式的目标是将算法封装在类中。因此可以很容易的替换一个现有的算法,或者把几个算法组合起来进行更复杂的处理,都会更加容易。而且这种模式能够尽可能地将算法的复杂性隐藏在一个直观的编程接口之后,因而有利于算法的部署。比方说,我们需要构建一个简单的算法,它可以鉴别图像中含有给定颜色的所有像素。该算法输入的是...
2018-07-23 18:20:04
324
原创 opencv学习之------进行简单的图像算术
opencv可以将图像以不同的方式组合,图像其实就是一般的矩阵,所以它们可以做加减乘除。opencv提供了各种图像算术操作符。首先是图像相加,当我们需要一些图像特效或者在图像上叠加信息时,就需要用到图像加法。我们只需调用cv::add函数就可以完成,更准确的说是cv::addWeighted()函数来完成图像的加法。函数调用如下:cv::addWeighted(image1, 0.7, ...
2018-07-20 18:40:10
362
原创 opencv学习之------遍历图像和邻域操作
在图像处理中,对当前位置像素的相邻像素计算新的像素值是很常见的操作,当邻域包括图像的前几行和下几行时,你就需要同时扫描图像的若干行。下面这个例子是对图像进行锐化,它是基于拉普拉斯算子的。众所周知,将一幅图像减去它经过拉普拉斯滤波之后的图像,这幅图像的边缘部分得到放大,即细节部分得到锐化,这个锐化的算子计算方式如下:Sharpened_pixel=5*current-left-right-up-...
2018-07-20 11:30:33
1032
原创 opencv学习之------编写高效的图像遍历循环
OpenCV有一个非常实用的函数,即cv::getTickCount(),可以用来测量一段代码的运行时间,该函数返回从最近一次电脑开机到当前的时钟周期数。如希望得到以秒为单位的代码运行时间,要使用另一个方法,即cv::getTickFrequency(),返回每秒的时钟周期数。double duration;duration = static_cast<double>(cv::...
2018-07-19 16:53:34
544
原创 opencv学习之----使用迭代器遍历图像
迭代器是一种极为方便的可以遍历数组或集合的方法,使用opencv的自带的Mat中的迭代器,可以方便的进行遍历数组操作。在迭代法中,你所需要做的仅仅是获得图像矩阵的begin和end,然后增加迭代直至从begin到end。将*操作符添加在迭代指针前,即可访问当前指向的内容。对于一个cv::Mat的实例,你可以通过image.begin<cv::Vec3b>()来得到图像左上角位置的...
2018-07-19 13:04:27
1838
1
原创 opencv学习之-----使用指针遍历图像
用一个简单的任务举例如何遍历图像:减少一幅图像的颜色数.彩色图像是由三个通道的像素组成的.每个通道的亮度值分别对应三原色(红绿蓝).因为这些值是8位unsigned char类型的,总共的颜色数为256×256×256,总共超过了一千六百万种颜色.因此,为了减少分析图像的复杂性,有时减少图像的颜色数是有用的.一个简单的方法是把RGB颜色空间再分成相等大小的空间.例如,如果图像颜色减少为每...
2018-07-19 10:28:01
2200
原创 opencv学习之------存取像素值
下面通过一个简单的函数来演示如何直接存取像素值。该函数会在图像中加入校验噪点。在传输过程中,如果部分像素值丢失,那么这种噪点就会出现。椒盐噪点是一种特殊的噪点,它随机低将部分像素设置为白色或者黑色。salt()函数的两个参数分别是输入图像和像素点个数,这个函数由单层循环构成,每次循环将一个随机选取的像素的值设置为255。随机选取的像素的行号i和列号j是通过一个随机函数得到的,通过检查图像的通道...
2018-07-18 16:58:17
315
原创 opencv学习之------定义感兴趣区域
定义ROI的两种方法(1).使用表示矩形区域的Rect。他指定矩形的左上角左边和矩形的长宽以定义一个矩形区域例:其中image是已经载入好的图片Mat imageROI=image(Rect(x,y,xleng,yleng))(2).指定感兴趣行或列的范围(Range),Range是指从起始索引到终止索引的一段联系序列如:Mat imageROI=image(Range(500...
2018-07-18 15:43:13
441
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人