自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 EmguCv几种图像打开方法和转换

EmguCv主要有3种打开图片的方式。一:Mat类实现 Mat类主要功能是存储图片数据结构,包括数据头和矩阵信息,主要的内存占据是图像信息矩阵。处理图像的时候可只复制数据头,可减少不必要的内存开销。按照需求针对图片的某个像素处理。能够得到图片的宽度(height),长度(weight),行(rows)列(cols)数,色彩类型(rgb,gray),通道数(channel)等各种...

2018-05-13 11:20:19 7260

原创 编程小记之一回望

初识编程便心生嫌弃。记第一次编程是在大学的计算机课,老师在课堂上讲解vb,让我们用VisualStudio实现一个简易的界面,然而一整节课都在神游的我,对着眼前方方正正的电脑屏幕不知从何下手,连拖拽个控件都是搞不清楚,更别说写上一些语句,判断和循环可以说写的毫无逻辑思维。那时候还不懂的思考,写出代码问题百出,总是无法执行,哪怕是对着同学的代码抄写也总是会有各种各样的问题,其实书本上都有写的很清楚,诸如使用半月角英文符号,结束要加上分号,大括号,单词不能拼错等,总是会把问题犯上好几次,不细心的我对...

2021-01-16 16:43:56 189

原创 工业相机采集问题汇总

1、相机连接超时 waitforbuffer(uint timeout);//相机触发采集超时时间,设置1000ms,外出发模式下超过一秒未采集到图像就会报错。解决方式:采用捕捉异常的方式跳过try{..... //采用捕获异常的方式避免线程断开,开启一个线程循环启动相机,避免相机掉线或未启动导致异常。waitforbuffer(uint timeout);}catch(exception e){ continue; }2、外触发模式采集异常 设置外触发模式,启动相机就直接跳出连续

2021-01-14 20:44:45 3366

原创 2020年初冠状病毒大事记随笔

这次新型冠状病毒裹挟着春运大潮,来势汹汹,触不及防。在家修身养性的日子,外界似乎又发生很多事情,篮球巨星科比陨落,澳洲大火连绵不绝,美国甲流死亡数千人等等,感概万千。以前觉得这些事很遥远,现在许多事都在身边发生,渐渐感觉到世界有时候的冷漠。 疫情地图上的数字逐日增加,每天都有新的恐慌出现,专家说口罩能有效防止病毒的传播,一波口罩慌就开始传播,谣言说国家要没大米了,第...

2020-02-03 22:58:08 2827

翻译 数据结构之线性结构

数据结构学习虚函数,几个知识点1:抽象类函数本身不能直接实例化,需要其子类实例化虚函数,才能实例化。继承抽象类的子类必须重写虚函数,具体函数可实现,也可不实现。2:const修饰符,若修饰函数,则函数参数不能被改变。若修饰成员变量,则成员变量在使用过程中不被改变。修饰传入参数,则避免参数被改变。3:模板类的实现最好在一个头文件中实现,若是分别实现可能出现异常。4:函数重载的实现,...

2019-06-27 19:37:57 238

原创 C++各种格式转换

C++中总是出现各种格式相互转换,特此总结记录遇到的所有格式转换,以便查阅。一: int、long、float、double等转为CString ,如果出现异常,可能是字符串格式设置的问题,修改字符格式,或者写成:strFormat(_T("%d"),_int)int _int = 1;long _long = 2;float _float = 3.0;double _doub...

2019-04-23 22:40:13 949

转载 递归解决n个元素的排列

2019-04-18确定n个不同元素的所有排列方式。n个元素的排列个数是n!。当n=1时,是基础排列,这时集合E只有一个元素e,不用递归就可以确定当n>1时,perm(E)是一个表,e1.perm(E1),e2.perm(E2),... en.perm(En); 其中ei是确定的排列前缀,而perm(En)是后缀。通过n个集合perm(X) 来定义集合perm(E),其中...

2019-04-18 23:06:19 483

原创 C++处理EXCEL数据

2019.04.13-04.15 处理大批量Excel数据时,并且数据处理行为模式一致,考虑采用C++进行批量处理,降低工作量。在查阅相关资料后,发现用的较多的有OLE的方式,能实现基本的excel功能,完成大部分的数据处理,利用OLE加载Excel程序的前提是电脑中安装有Mircosoft office excel。具体的操作方法,需要包含Excel加载所需的头文件,可以...

2019-04-14 11:38:39 9295 2

翻译 分治法三维重构

2019.4.11--4.12一:Delaunay三角剖分-分治法(Divide and conquer)1: 散乱点云排序,按照x从小到大,若x 相同则按照y从小到大排序 (图1)原始点集排序 (图2)将点集分割成每个子集个数不大于3的点集2:划分子集,将所有点集递...

2019-04-13 15:55:12 575

原创 template

#include <iostream>using namespace std;template <class T>void create2darray(T ** &x,int numOfRows,int* colsSize){ try{ x = new T* [numOfRows]; for (int i = 0; i < ...

2019-04-10 22:24:55 202

原创 插入法三维重构

2019-4-9 Delaunay三角剖分-逐点插入法一:理解delaunay三角剖分原理 关键点在于三角形生成的规则及其实现过程。生成初始三角形,将初始三角形放入临时三角形中,判断三角形是否满足delaunay三角形规则,只有满足规则三角形才会被加入Delaunay三角形链表中。否则插入新的点,生成新的临时三角形,在对新三角形进行delaunay规则判断,继续进行分割,知...

2019-04-10 22:14:51 773 3

转载 c++知识工具大全

1:一个包含各种算法的实现的网站,看样子是台湾的学者写的,十分帅气!http://www.csie.ntnu.edu.tw/~u91029/Algorithm.html2:学习OpenGL必备网站之一,教程十分详细,值得专研!https://learnopengl-cn.readthedocs.io/zh/latest/3:查找不懂的问题,大部分都有比较详细的答案,不过是英文,查找...

2019-04-02 22:33:56 144

原创 Cimage类异常(m_hBitmap != 0)

一:m_hBitmap != 0这个Bug困扰我甚久,无意之中不知何故就被解决了。重新整理代码时发现该异常的原因: 1:文件读取路径错误 2:Cimage 创建成全局对象时,读取一次后就不能再次读取,否则就会异常。 个人理解:应该是读取一次后CImage对象地址改变,当再次赋值时地址不在是起始位置,因此出现...

2019-03-02 20:57:51 4346 1

原创 pcl+vs2012+win7(32位)配置环境

PCL+ VS2012 + WIN7(32位)环境配置,大部分C++库配置都可作为参考,总体思路相同。 由于实验项目在三维建模遇到困难,自己写的三维曲面重建效果不佳,又苦于图像滤波处理方法的参考方法较少,需要借助PCL丰富的第三方库,实现三维数据的处理与展示。因此着手准备安装PCL,中间经历多次重装,特记下此经历:一则 方便日后再次PCL时查找相关资料的繁琐,能够快速...

2019-02-26 16:30:34 1225

原创 线程等待隐藏Bug:SetDlgItemText()函数

       在做相机数据采集的开发时,遇到一个Bug,不知原因何起,没有异常显示。当停止采集时不知什么原因导致采集界面卡死,无法采集数据,也无法退出。几经调试每每到退出采集时,函数就无法继续下去,遂以为是库的函数有问题。可是调用堆栈又找不到问题,偶然注销回调函数,发现程序可以正常退出,故采用二分注销法,一步一步测试,最终发现,Bug竟然隐藏在SetDlgItemText()函数,最后暂停的时候采...

2019-01-10 15:23:44 1036 1

原创 SharpGL学习基础篇--坐标系中的三角形

1:opengGL做立体图,是在三维坐标系中,多次试验,弄清三维坐标系方向,画三角形的原理及成像机制。代码解释一波。 //实例化OpenGL对象 OpenGL gl = new OpenGL(); //清空Depth和Color缓存 gl.Clear(OpenGL.GL_DEPTH...

2018-09-01 22:03:46 1711

原创 高斯曲线拟合详细步骤

高斯函数:  已知一组数据:Yi={x1,x2,...,xn},需要拟合成高斯函数。 令 F(x)=lnf(x),  ,化简可得到式(1),F(x)=lnA-x0^2/2*simga^2+xi*x0/sigma^2-xi^2/2*sigma^2...........................................................................

2018-08-24 09:07:33 36352 6

原创 .Net平台科学计算库Math.Net Numerics

     C#数值计算实现处理麻烦,如今发现一个库,可以大大提高C#数值能力,为处理数据提供极大便捷,这个库叫Math.NET Numerics。该库旨在为科学,工程和日常使用中的数值计算提供方法和算法。涵盖的主题包括特殊函数,线性代数,概率模型,随机数,插值,积分,回归,优化问题等。Visual studio 2012安装这个库的时候,先更新Nuget,Nuget是C#的程序包管理器,许多扩...

2018-08-22 17:33:50 4255

原创 高斯滤波(Gaussian blur)

高斯滤波法,利用高斯函数计算高斯核,利用高斯核处理图像。高斯函数在滤除高斯噪音以及模糊方面效果较好,实现该函数的核心在于高斯核的计算。高斯函数的一维形式如公式(1)所示: 高斯核的计算: private double[,] Kernerl() { ...

2018-08-13 21:42:19 2709 4

原创 图像指针处理调试常见的问题

1:Systen.AccessViolationException {"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"}思考:指针越界,超出图像数组内存。查找图像指针变化循环,调整指针位置。2:p[0]未将引用对象设置至实例调试:第一轮调试循环没问题,第二轮循环出现该错误,说明中间对象引用错误,重点检查条件改变部分。错误的赋值:Ptr =(byte*)(stride*k+...

2018-08-13 15:14:43 364

原创 自适应二值化方法之Bernsen法

Bernsen法属于局部阈值法,在光照不均匀的条件下有较好的处理效果。其思想如下: 1:设当前像素为点为P(i,j),计算以P为中心的大小为kernel*kernel窗口内的所有像素的最大值kernelMax与最小值kernelMin,若两者差值相近,该部分属于目标或背景,将该灰度与全局阈值比较,确定是目标还是背景,若二者差值较大则可能属于目标与背景相交的边缘,此时将二者平均值作为Kerne...

2018-07-25 16:27:50 2894

原创 最大类间方差法

最大类间方差法(Otsu)顾名思义该方法利用目标区域与背景区域之间的方差最大的思想,达到分割图像的目的。也就是说,选取最佳阈值T时,目标与背景之间的方差值最大,小于阈值T的区域为D1,大于阈值的区域为D2,如此一来即可将需要的区域区分开来。话不多说,上代码://统计灰度直方图,直接在图像转数组中实现 private unsafe void Image2Byte() {...

2018-07-24 17:58:43 6424

原创 C#GET和SET作用

      一个A类内部使用私有属性private时,另一个类B想要访问这个类A的属性,只有类A给开个后门才可以了,这时候就需要用到访问器get和set。特别是当A类封装起来的时候,如果没有留个后门,这个类里面的一些私有属性其他类就无法获取。这个后门可以起到一下几个作用 1:对这个属性进行过滤,满足条件的才通过,不满足的则直接过滤2:其他类需要更改名字时,直接在这个门这里更改名字private s...

2018-07-07 11:39:24 360

原创 C#图像与数组之间的相互转换

一:Bitmap位图转换为byte[]数组 1:进行以下设置:设置项目管理->属性->生成->允许不安全代码 打√即可 //unsafe不安全代码,设置允许不安全代码 private unsafe byte[,] imageToByte(Bitmap bit_Image) { cols = b...

2018-07-02 20:40:02 5438

转载 C#类的多态

    虚方法实现多态class Program    {              static void Main(string[] args)        {            ShaGou jilei = new ShaGou();            GouZaizi zilei = new GouZaizi();            ShaGou[] goulei = { j...

2018-07-01 11:39:29 222

原创 C#接口和抽象类

1:抽象类是什么?  抽象类是一个物体核心定义,比如Car是抽象基类,其派生类有SUV、Compact、PickUp等。汽车Car也可是派生类,基类是交通 工具Vehicle。但是他们都有一些特定的功能,比如载客,这个功能的实现需要接口IpassengerCarrier实现。2:无法实例化,只能创建对象。直接创建对象不会报错,但需要赋值。创建新的SimpleBlobDe...

2018-07-01 11:38:25 268

原创 EmguCV相机校正函数CalibrateCamera

CalibrateCamera函数校正相机畸变,输入三个图像参数,可得到相机内参矩阵(CameraMatrix),畸变矩阵(distortionCoeffs),旋转(rotationMatrix)和平移矩阵(translationMatrix),具体函数如下CalibrateCamera(MCvPoint3D32f[][] objectPoints, // 空间三维坐标点Po...

2018-07-01 11:30:59 2694 5

原创 Emgucv点的数据类型

.net数据类型 Point() point = new Point(x,y); 有序整型坐标点 PointF() pointF = new PointF(x,y); 双精度有序坐标点Emgucv数据类型MCvPoint3D32f   TDpoint;三维坐标下的点,类型为浮点型typedef struct CvPoint3D32f{float x; /* x-坐标, 通常基于0 */float ...

2018-06-30 13:25:56 1161

原创 C#节点链表

自定义节点类ListNodepublic  class ListNode{    public int val;    public ListNode next;    public ListNode(int x)    {        val = x;    }} static void Main(string[] args)        {            ListNode newL...

2018-06-07 22:18:55 820

原创 C#两数组的交集

题目:Given two arrays, write a function to compute their intersection.给出两个数组,找出他们的交集Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].Note:Each element in the result must be unique.每个数组的结果必...

2018-06-03 14:33:27 1383

原创 LeetCode

每处想法之外的错误,都有迹可循。抛出异常为什么?找到在错误在哪里! ==========小甘 ...

2018-06-02 10:42:45 200

转载 买卖股票的最佳时机Ⅱ

从特别的例子出发考虑,只想到相隔两个的情况,导致出现错误[6,1,3,2,4,7]  第二天买,第三天卖,第四天买,第六天卖.   最高利润7.该方法为贪心算法。思考下过程...

2018-05-28 22:20:17 131

转载 LeetCode 存在重复数

 public boolean containsDuplicate(int[] nums) {        for (int i = 1; i &lt; nums.Length;i++){            int  j = i - 1;            int  t = nums[j+1];            while (j &gt;= 0 &amp;&amp; nums[j]...

2018-05-26 09:54:04 426

原创 论文阅读方法

一:思考你需要什么      1.针对需要的内容提出几点思考,假设,提问。      2.精度2-3篇相关度的论文,思考问题是否解决。      3.针对精读文章列出文章的关键字,相关信息,相关文章及作者等信息。二:论文查找     1.质量高             经典之作、期刊排名高、影响因子高、引用量大等。      2.相关性高              1.阅读题目、关键词和摘要,是否...

2018-05-13 11:21:21 462

原创 Emgucv之安装

一:安装,引用1:进入官网,选择对应的版本,注意版本能配合CS,下载.exe文件。2:下载后双击,选择文件目录进行安装。3:安装完成后打开bin文件夹,下面会有x86和x64两个文件夹,拷贝目录地址。4:修改环境变量,在系统变量下添加path,安装目录的bin和相应的系统类型地址添加进去,重启电脑。5:打开C#,添加bin目录下的.dll引用6:到选择工具箱,浏览添加:Emgu.CV.UI.dll...

2018-05-07 09:12:30 369

原创 Sap开发之相机信号状态获取

一:思路           1:利用构建完成的Createnewobject();           2:采集一次数据,不进行保存和相关处理          3:通过bool signalDetect=Acquisiton.IsSignalActive(SapAcquisiton.AcqSignalStatus.LineVaidPresent)                //判断设备是否...

2018-04-20 21:52:48 597

原创 Grab调试之CreateNewObject()

运行顺序:一:加载配置文件1:程序从InitiallizeComponent()进入,初始化各原始参数。2:Form_Load()窗体加载调用 InitServer()3:SapManager.GetserverCount() 不管设备是否连接,返回2。SapManager.GetserverName(i,Acq),总是得到三个值:System,Xtium-CL_MX4_1,CameraLink_...

2018-04-17 21:16:29 1011

原创 Sapera开发笔记

一:SapManager类SapManager.GetServerName(i):返回0 1 2  。其中0是System ,1是相机名称(Acq服务设备)即我需要的设备名称   2是面阵相机SapManager.GetResourceCount(int serverIndex, SapManager.ResourceType)  :返回满足相机设备的像素格式     int serverInde...

2018-04-17 21:16:19 3049

转载 C#中 paint()与Onpaint()的区别

Paint()和OnPaint()事件是用来重绘一:二者区别1.OnPaint方法是对一个控件来说的;而Paint事件是对一个控件对象来说的。它们中前者相当于是类的一个成员函数,而后者相当于是类的一个函数指针类型的变量(会因对象的不同而不同)。    2.OnPaint方法引发Paint事件,所以重写OnPaint方法,一定要调用base.OnPaint,否则就不会引发Paint事件了。OnPai...

2018-04-16 08:13:51 2610

原创 冒泡排序

class Program { static void Main(string[] args) { int[] list = new int[100]; list = RandomNum(); int[] newlist = Bubblesort(list); ...

2018-04-15 11:22:16 291

c++利用OLE处理excel文件所需头文件

利用OLE处理excel文件所需头文件,包括<CApplication.h><CWorkBooks.h><CWorkBook.h><CWorkSheets.h><CWorkSheet.h><CRange.h>

2019-04-14

空空如也

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

TA关注的人

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