- 博客(51)
- 资源 (12)
- 收藏
- 关注
原创 pybind11实现numpy和OpenCV Mat的数据交互
使用pybind11相比ctypes方法ctypes实现python和c之间的数据交互-CSDN博客,更加简单、易用。但ctypes的优势在于不用额外配置库,python内置了。
2024-01-08 20:32:14 1136
原创 ctypes实现numpy和OpenCV Mat之间的数据交互
将c/c++编译成动态链接库,通过python调用,实现常见变量比如int,字符串之间的交互;以及np.ndarray和cv::Mat见的交互.
2024-01-08 12:21:54 683
原创 stm32普通IO口捕获PWM的高电平
思路:普通IO口配置上升沿下降沿触发中断,然后配置一个定时器(周期大于等于PWM周期),在IO口中断中读取定时器计数。定时器不需要配置中断void TIM3_Configuration(void){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; /* T
2016-12-10 19:55:31 8102 1
转载 Gamma 校正
在计算机系统中,由于显卡或者显示器的原因会出现实际输出的图像在亮度上有偏差,而Gamma曲线矫正就是通过一定的方法来矫正图像的这种偏差的方法。一般情况下,当用于Gamma矫正的值大于1时,图像的高光部分被压缩而暗调部分被扩展,当Gamma矫正的值小于1时,图像的高光部分被扩展而暗调部分被压缩,Gamma矫正一般用于平滑的扩展暗调的细节。公式如下:I' = I^gamma:表示对图像
2014-04-26 17:08:52 11484
原创 Qt读写二进制文件
下面是简单的二进制读写示例#include #include #include #include using namespace std;int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QFile file("test.dat"); file.open(QIODevice::WriteOnly
2014-03-26 17:07:27 31599 3
原创 OpenCV在Qt中显示视频的两种方法
参考:http://blog.csdn.net/augusdi/article/details/8865541代码如下:注意,要在ui界面上放置一个“Vertical Layout”控件,调整到合适大小#include #include #include #include #include #include #include #include #include "ui_
2014-03-21 10:00:24 40944 4
转载 Qt 5.1.1 中找不到'GLES2/gl2.h'文件的解决办法。
今天使用Visual Studio建立了一个Qt 5.1.1 项目,可是建立以后编译却发现出现了故障:[html] view plaincopysrc/gui/opengl/qopengl.h(55) : fatal error C1083: Cannot open include file: 'GLES2/gl2.h': No
2014-03-05 09:38:45 2390
转载 机器学习中的超平面
学习函数间隔(functional margin)和几何间隔(Geometric margin)时,补习了一下超平面的知识,记录如下。 一、仿射空间(1)直线——1维仿射空间给定n维的空间中,一条直线是方向向量v以及直线上的一点P决定。如下图所示:图1:line figure illustration
2014-02-27 09:24:06 3330
原创 OpenCV学习--仿射变换(affine)
图像的基本几何变换有-- 平移,旋转,尺度,仿射;仿射变换可以理解为平移旋转尺度的组合效果。下面给出数学上的定义是输入图像的点,时输出图像的点A是旋转矩阵, B是平移向量(一)平移的实现(二)旋转的实现(三)尺度的实现从上面的实现可以看出,使用仿射变换是需要求解6个参数,旋转矩阵4个,平移向量2个。这也是我们在使用OpenCV的warpAffine函数时需要
2013-12-29 21:21:07 1742
原创 寻找凸包 convex hull(二)——Graham_Scan
这篇继续凸包得的寻找,上篇文章中使用了暴力的方法,在网上又看了一些资料下面会介绍常用的算法 Graham_Scan首先介绍一下有向面积的概念:算法的大致步骤:1)对于给定的点集 data 寻找其中y坐标最小的点作为起始点p2) 把坐标原点移动到p处,然后计算每个点与x轴正方向的夹角3)根据夹角的大小排序,得到排序后的点集data4)设点集data中有N个数据,数组
2013-12-24 11:21:09 2258
原创 寻找凸包 convex hull(一)
今天学习OpenCV2中的ConvecHull函数连接如下:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/shapedescriptors/hull/hull.html#hull网上看了看有好多种方法来实现凸包的寻找,我自己也尝试一下暴力搜索解决这个问题搜索的思路就是:凸包上的每条边都会是所有点在该直
2013-12-23 18:28:09 1375
原创 二叉查找树(二)--简单的信息检索程序
继续总结二叉查找树的学习,上篇中最后的测试代码为了简单使用的是整形,那么这篇文章要贴出来的是一个信息检索程序。它要做的就是给定一个文本,找出其中用了哪些不同的词以及每个词使用了多少次。最后的测试数据是截取马丁路德金的前一部分,自己把里面的标点符号都去了。这里主要用到两个函数update和print他们的作用就不用说了大家一看就懂void update(Word &word, Searc
2013-11-08 17:02:43 967
原创 二叉查找树(一)
上篇文章中记录了二叉树的基本功能的实现,现在继续总结二叉树的学习。为啥要用二叉查找树呢,我们知道在顺序表上使用二分查找是非常快的,但是顺序表的插入和删除就显得有点麻烦;而链表的插入和删除仅需要调整一些指责就OK了。二叉查找树就是要达到快速查找(就像顺序表上的二分查找),而且要做到快速的插入和删除(就想操作链表一样)。下面是基本定义:二叉查找树是一颗二叉树,它或者为空,或者它的每个节点有
2013-11-07 16:51:43 778
原创 类模板实现的基本二叉树
关于二叉树的基本知识还是有必要去了解的,比如根据二叉树写出三种遍历,以及根据给出的遍历写出其他方式的遍历和重构二叉树等,这些知识点还是很有意思的,下面的代码很多都是参考网上的,我这里贴出来主要是作为我学习数据结构的一些总结吧首先是树节点的定义:templatestruct Binary_node{ Entry data; Binary_node* left; Binary_n
2013-11-06 11:17:55 4628 2
原创 哈希(hash)算法的学习(二)
这一部分主要是贴出代码#ifndef HASH_TABLE_H#define HASH_TABLE_H#include using namespace std;class Key:public string{public: char key_letter(int position) const; void make_blank(); Key(const string &
2013-11-01 17:20:10 2034
原创 哈希(hash)算法的学习(一)
首先要解释一下键的概念,如果学过数据库的话这段可以跳过,比如现在有个Record类记录我们每个人的基本信息,类成员有姓名,学历,身高,身份证号,出生年月等,那么这些成员中哪一个可以作为唯一标识去区别呢,很明显身份证号是可以的,那么我们就可以认为身份证号码可以作为Record类的一个键一 :算法摘要1,初始化操作 ---- 首先必须申明一个数组去容纳哈希表,接下来必须对数组中的所有元素初
2013-10-31 17:32:58 1709
原创 C++类模板实现单链表
-----------------------Chain.h---------------------------#ifndef CHAIN_H_#define CHAIN_H_#include using namespace std;enum Err_type{success, underflow, rangeerror, overflow};templatestruct C
2013-10-28 09:52:59 969
原创 栈学习--简单的括号匹配
#include #include #include using namespace std;void PrintMatchedPairs(char *expr){ stack s; int data; int num = strlen(expr); for(int i=0; i<num; i++) { if(expr[i] == '(') s.push(i);
2013-10-27 20:49:36 596
原创 C++类模板实现双链表
-----------------------------------------------------------------List.h--------------------------------------------------------------------------------------------------------#ifndef LIST_H_XX#de
2013-10-25 10:02:43 1010
原创 OpenCV学习--腐蚀与膨胀
主要学习函数 createTrackbar 如何创建 trackbar,和编写回调函数 erode 腐蚀图像 dilate 膨胀操作int createTrackbar(const string& trackbarname, const string& winname, int* value, int count,CvTrackbarCallbackon
2013-10-10 11:30:26 3725
原创 OpenCV学习--saturate_cast防止数据溢出
在OpenCV学习中经常看见saturate_cast的使用,下面的代码会展示它的作用,详细的代码可以参见文章http://blog.csdn.net/mjlsuccess/article/details/12400787//使用图像混合例子中的C语言版本演示for (int i=0; i<src1.rows; i++){ const uchar* src1_ptr = src1.p
2013-10-07 20:25:09 33290 2
原创 OpenCV学习--实现两幅图像的融合
源代码来源于官网的OpenCV教程,实现的功能比较简单最后自己动手用C语言实现了一下,貌似比库函数要快一点#include "StdAfx.h"#include "blending.h"using namespace std;using namespace cv;void blending_test(){ Mat src1, src2, dst; double alpha =
2013-10-07 19:59:42 24067 2
原创 如何计算产生SPWM所需要的占空比
在上一篇文章里粘贴了STM32产生SPWM的代码,我在编写这些代码时最大的问题就是如何得到占空比,就是代码中的数组 Duty[]。他的思想就是对正弦波采样,在采样点出用PWM的占空比来代替正弦波在该点的数值。最容易想到就是用定时器的ARR值乘以sin(2*pi*f*t),就可以得到对应的寄存器CCR值。但是CCR值不能为负,所以要把sin(2*pi*f*t)变为A*sin(2*pi*f*t)+
2013-09-03 21:46:51 16476 9
原创 STM32产生SPWM
/** @author Mei Jilin @date 2013/9/2 @brief 加入生成SPWM部分**/#include "timer.h"#include "led.h"static uint16_t CCR3_Val = 1800;static uint16_t PrescalerValue = 0;/*PWM输出配置说明,*//* - Pres
2013-09-03 21:11:27 19737 10
原创 stm32adc多通道数据采集
/** @date 2013/8/28 @author Mei Jilin@brief ADC1µÄÅäÖÃÍê³É3ͨµÀµÄÊý¾Ý²É¼¯ @attention 1 ----------- adc_config(); //ÅäÖÃadc 2 ----------- adc_start(
2013-08-29 11:13:52 16419 2
原创 POJ--1004
#include using namespace std;float financial[12];int main(void){ int n = 0; float sum = 0; while((cin>>financial[n]) && (++n!=12)) continue; for (int i=0; i<12; i++) { sum += financial[i]
2013-08-06 22:44:07 579
原创 POJ-1003
#include using namespace std;int fun(float dat);float input[20];int main(void){int n =0;while (cin>>input[n]){if ((input[n] == 0.00) || n==19) break;n++;}for (int i=0;
2013-08-06 22:23:48 620
转载 三维中 Yaw, pitch and roll 的区分(图片)
三维中 Yaw, pitch and roll 的区分(图片) yaw 旋转 pitch旋转 roll旋转
2013-07-22 21:22:50 1087
原创 vc中如何把窗口坐标系转为笛卡尔坐标系
vc中默认的坐标系是MM_TEXT,即以左上角为原点,以右方当做x的正方向,以下方当做y轴的正方向。他的好处是窗口中的每一点坐标不会随着窗口的大小而改变,即你改变窗口时窗口中的图形不会改变。如果要转为笛卡尔坐标系需要使用MM_ISOTROPIC(用户自定义X=Y)或者MM_ANISOTROPIC(用户自定义X!=Y),isotropic是相等的意思。函数1:模式选择int SetMap
2013-07-03 17:32:39 3675 1
转载 wParam与 lParam
根据字面意思理解:WPARAM就是DWORD_PARAMETER(双字节参数)的缩写.LPARAM就是LONG_PARAMETER(长整型参数)的缩写.WPARAM:16位(双字节(在16位系统的时候))的消息参数。值的格式和意思取决于主要的事件消息类型。在不同的情况下,WPARAM变元可能传输一个坐标点对,使用低字值标识次要的消息类型,提供某些其他的数据类型,或被完全忽略
2013-07-02 23:11:07 956
转载 Windows窗口相关的一些概念解释
最近工作中关于UI开发方面的东西多了些,碰到问题的时候查阅了很多资料,对Windows窗口的一些概念的理解也慢慢深入了很多。在这篇中把一些比较容易混淆和相关资料比较少的概念做一个总结,可能你用到这些概念的几率不大,但是一旦你遇到相关问题,解决起来还真是要费一番功夫。一、窗口的分类Windows定义了3种窗口类型:#define WS_OVERLAPPED 0x00000000L
2013-07-02 22:11:27 1500
原创 如何获得窗口句柄(FindWindow函数的使用)
一: 获得主窗口HWND WINAPI FindWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowName); 该函数通过创建窗口时的类名和窗口名查找窗口并返回该窗口的句柄,函数不会搜索子窗口。该函数区分大小写。参数lpClassName [in, optional]Type: LPCTSTR类
2013-07-02 19:58:03 43396 4
转载 TranslateAccelerator的使用
函数功能:翻译加速键表。该函数处理菜单命令中的加速键。该函数将一个WM_KEYDOWN或WM_SYSKEYDOWN消息翻译成一个WM_COMMAND或WM_SYSCOMMAND消息(如果在给定的加速键表中有该键的入口),然后将WM_COMMAND或WM_SYSCOMMAND消息直接送到相应的窗口处理过程。TranslateAccelerator直到窗口过程处理完消息后才返回。函数原
2013-07-02 16:55:25 2899
转载 MAKEINTRESOURCE的作用
MAKEINTRESOURCEMAKEINTRESOURCE是一个资源名转换的宏, VC的定义是(winuser.h): #define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i))) #define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
2013-07-02 16:11:29 18768
常见汉字的Unicode和GB2312映射表
2016-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人