<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NewThinker_wei 的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/NewThinker_wei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NewThinker_wei]]></copyright><item><title><![CDATA[带约束的最优化问题]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/52857397</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/52857397</guid><author>NewThinker_wei</author><pubDate>Tue, 01 Nov 2016 01:12:13 +0800</pubDate><description><![CDATA[学习支持向量机SVM时，拉格朗日对偶、Slater条件、KKT条件等一大堆概念席卷而来，让没系统学习过凸优化的笔者一头雾水，估计不少人都是这样吧。 为什么要引入一堆系数把约束条件与目标函数组合到一起？为什么满足了KKT条件就是符合条件的解? 为什么可以转化为对偶问题？什么是Slater条件？]]></description><category></category></item><item><title><![CDATA[Let's Complain the Irresponsible keyword 'const'  in C++]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/51106469</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/51106469</guid><author>NewThinker_wei</author><pubDate>Sat, 09 Apr 2016 19:17:39 +0800</pubDate><description><![CDATA[as we were told, the 'const' methods of a C++ class will protect its
members from being changed . it makes me so confident that 'const'
methods are absolutely safe until someday i found a case which]]></description><category></category></item><item><title><![CDATA[SIFT特征点算法源码分析（opencv）]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/46707729</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/46707729</guid><author>NewThinker_wei</author><pubDate>Wed, 01 Jul 2015 11:16:56 +0800</pubDate><description><![CDATA[SIFT特征点算法源码分析]]></description><category></category></item><item><title><![CDATA[SURF 特征点算法源码分析（opencv）]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/46692943</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/46692943</guid><author>NewThinker_wei</author><pubDate>Tue, 30 Jun 2015 11:55:47 +0800</pubDate><description><![CDATA[opencv 中的SURF源码分析]]></description><category></category></item><item><title><![CDATA[opencv中的各种“矩阵”]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/46294115</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/46294115</guid><author>NewThinker_wei</author><pubDate>Mon, 01 Jun 2015 00:33:18 +0800</pubDate><description><![CDATA[一、 旧的数据结构

在老版本的 opencv 中，矩阵主要用 c 的结构体实现，主要的几个结构体为：

cvArr (通用数组)、
cvMat (多通道二维矩阵)、
cvMatND (多通道多维稠密矩阵)、
cvSparseMat (多通道多维稀疏矩阵)、
IplImage (图片，二维矩阵，数据只能是1\2\3\4通道)、
CvSeq (序列)
CvSet (集合，派生于序]]></description><category></category></item><item><title><![CDATA[POSIT算法的原理--opencv 3D姿态估计]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45748157</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45748157</guid><author>NewThinker_wei</author><pubDate>Fri, 15 May 2015 18:39:33 +0800</pubDate><description><![CDATA[3D姿态估计-POSIT算法
 
POSIT算法，Pose from Orthography and Scaling with Iterations， 比例正交投影迭代变换算法：
用于估计物体的3D姿态（相对于镜头的平移和旋转量）。算法正常工作的前提是物体在Z轴方向的“厚度”远小于其在Z轴方向的平均深度，比如距离镜头10米远的一张椅子。
 
算法流程：
假设待求的姿态，包括旋转矩阵R和]]></description><category></category></item><item><title><![CDATA[Harris角点检测原理分析]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45603583</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45603583</guid><author>NewThinker_wei</author><pubDate>Sat, 09 May 2015 20:23:42 +0800</pubDate><description><![CDATA[原文自：http://blog.youkuaiyun.com/yudingjun0611/article/details/7991601

转注：NewThinker_wei： 加了一些原理性的注解，注解部分在文中用 {{  }} 圈了起来。




Harris角点检测算子是于1988年由CHris Harris & Mike Stephens提出来的。在具体展开之前，不得不提一下Morave]]></description><category></category></item><item><title><![CDATA[OpenCV——Delaunay三角剖分]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45598769</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45598769</guid><author>NewThinker_wei</author><pubDate>Sat, 09 May 2015 09:06:46 +0800</pubDate><description><![CDATA[转载请注明：http://blog.youkuaiyun.com/raby_gyl/article/details/17409717




相关文章：OpenCV三角剖分的遍历和纹理映射：http://blog.youkuaiyun.com/raby_gyl/article/details/19758167




Delaunay三角剖分是1934年发明的将空间点连接为三角形，使得所有三角形中最小]]></description><category></category></item><item><title><![CDATA[Delaunay三角剖分算法简述]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45543495</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45543495</guid><author>NewThinker_wei</author><pubDate>Wed, 06 May 2015 23:33:15 +0800</pubDate><description><![CDATA[原文来自：http://blog.chinaunix.net/uid-20490856-id-1665402.html




Delaunay三角剖分具有下列性质：

（1）Delaunay三角剖分所形成的三角形中，最小的内角是所有三角剖分中最大的。故Delaunay三角剖分所形成的三角形最接近于等边三角形，在很多应用中具有最优的性质。此性质等价于Delaunay三角剖分所形成的三]]></description><category></category></item><item><title><![CDATA[OpenCV的序列数据结构(CvSeq)]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45223589</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/45223589</guid><author>NewThinker_wei</author><pubDate>Thu, 23 Apr 2015 16:38:14 +0800</pubDate><description><![CDATA[序列是内存存储器中可以存储的一种对象.序列是某种结构的链表.OpenCV中,序列可以存储多种不同的结构.你可以将序列想象为许多编程语言中都存在的容器类或容器类模版(如C++中的vector).学列在内存被实现为一个双端队列(deque).因此序列可以实现快速的随机访问,已经快速删除顶端的元素,但是从中间删除元素则稍慢些.

1.数据结构

seq数据结构如下




查看文本打印]]></description><category></category></item><item><title><![CDATA[进程的页表和页目录存储在内核空间还是用户空间？低端内存还是高端内存]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/42089707</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/42089707</guid><author>NewThinker_wei</author><pubDate>Mon, 22 Dec 2014 23:18:14 +0800</pubDate><description><![CDATA[原帖：http://bbs.youkuaiyun.com/topics/390956135?page=1#post-398690481



进程的页表和页目录存储在内核空间还是用户空间？

A. 如果页表、页目录都在在内核空间的低端内存中，那么：
内核通过cr3能获得全局页目录中的物理地址，由于低端内存的线性映射，内核就能据此算出页目录的虚拟地址，进而实现对页目录的读写；同理，根据页目录中的内]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（7）--插件开发示例代码（Lower-level API）]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41338447</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41338447</guid><author>NewThinker_wei</author><pubDate>Fri, 21 Nov 2014 02:39:44 +0800</pubDate><description><![CDATA[插件代码
接口类头文件 MyPluginInterface.h
#ifndef INTERFACES_H
#define INTERFACES_H

#include 

#define QtPluginDemo_iid "org.qt-project.Qt.PluginDemo"

class MyPluginInterface
{
public:
	virtual int add(int,]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（6）--开发Qt插件时几个重要的宏]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41292115</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41292115</guid><author>NewThinker_wei</author><pubDate>Fri, 21 Nov 2014 02:24:25 +0800</pubDate><description><![CDATA[如何开发Qt插件，可以在Qt Assistant 中搜索"Qt Plugins"或"How to Create Qt Plugins",看看那篇manual中的介绍。
其中涉及到了几个宏


Q_DECLARE_INTERFACE( ClassName, Identifier)
This macro associates the given Identifier (a string li]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（5）--QLibrary类与QPluginLoader类]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41292069</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41292069</guid><author>NewThinker_wei</author><pubDate>Fri, 21 Nov 2014 02:18:40 +0800</pubDate><description><![CDATA[前面几片文章中提到的类，包括 QxxxFactory、QFactoryLoader、QLibraryPrivate 等， 都是Qt的内部类，不是Qt的标准API，
如果要在应用程序的层次上加载库或插件，则需要借助另外两个类，QLibrary 和 QPluginLoader，这两个类属于Qt的标准API，可以
在普通Qt应用程序的开发中使用。

这两个类的用法比较简单，可以在 Qt Assi]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（4）--Qt插件的元信息metaData]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41292011</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41292011</guid><author>NewThinker_wei</author><pubDate>Fri, 21 Nov 2014 02:12:50 +0800</pubDate><description><![CDATA[JSON 与Qt插件的元信息 MetaData

Qt插件的源码中，基本都能见到一个 xxx.json 的文件，这个文件中通常只包含一句：

{
    "Keys": [ "yyy" ]
}

我们可以猜到这个文件中的"Keys"应该是指定了与插件相关的关键字。那这个 .json 文件到底是如何起作用的?
先来认识一下 JSON .

JSON是一种存储结构化数据的格式，它]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（3）--QLibraryPrivate类与QLibraryStore类]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41291973</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41291973</guid><author>NewThinker_wei</author><pubDate>Fri, 21 Nov 2014 02:04:10 +0800</pubDate><description><![CDATA[QLibraryPrivate 类的重要性

Qt中能加载库或插件的几个类：
 
    QLibrary , 
    QPluginLoader , 
    QFactoryLoader ,
    QStaticPlugin (暂时不研究这个)
    
QLibrary 和 QPluginLoader 依赖的'私有数据类'都是 QLibraryPrivate， 一个QL]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（2）--QxxxFactory类与QFactoryLoader类]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41291921</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41291921</guid><author>NewThinker_wei</author><pubDate>Thu, 20 Nov 2014 01:14:28 +0800</pubDate><description><![CDATA[在Qt的插件加载机制的概述中，我已经提到过，一个QFactory 类往往对应于某一类别、或某种特定功能的插件。
在Qt中，为了区分不同类别、不同功能的插件，应该为每一类插件设置一个独特的 IID 值，这个IID值通常
是一个长字符串。属于同一类的插件应该具有相同的IDD值。比如，所有平台类QPA插件，包括LinuxFB插件(QLinuxFbIntegration)、
XCB插件（QXcbIn]]></description><category></category></item><item><title><![CDATA[Qt5的插件机制（1）--Qt 框架中的插件加载机制概述]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41291811</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/41291811</guid><author>NewThinker_wei</author><pubDate>Thu, 20 Nov 2014 00:43:00 +0800</pubDate><description><![CDATA[Qt的源码中通过 QFactory、QPlugin 和 Q 这三个类实现了Qt的插件加载机制，
这个机制可用于加载特定种类的插件。比如通过 QPlatformIntegrationFactory\QPlatformIntegrationPlugin\QPlatformIntegration
三个类可以实现平台类QPA插件（PlatformIntegration）的加载，通过QPlatformI]]></description><category></category></item><item><title><![CDATA[__blk_end_request源码分析]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/40202241</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/40202241</guid><author>NewThinker_wei</author><pubDate>Sat, 18 Oct 2014 01:59:38 +0800</pubDate><description><![CDATA[写块设备驱动时要多处用到__blk_end_request这个函数，用这篇博文简单分析一下它，
省得以后用起来还是稀里糊涂的。我们已经这道的是，当对应的 request 包含的IO操作
已经全部完成时，这个函数返回false；否则，如果只是部分完成，则返回true。


__blk_end_request 函数的过程可简化理解如下：（实际的代码并非如此，
这里忽略了双向IO（bidi_]]></description><category></category></item><item><title><![CDATA[memblkA 最简单的内存模拟块设备 源码]]></title><link>https://blog.youkuaiyun.com/NewThinker_wei/article/details/39911715</link><guid>https://blog.youkuaiyun.com/NewThinker_wei/article/details/39911715</guid><author>NewThinker_wei</author><pubDate>Thu, 09 Oct 2014 00:21:28 +0800</pubDate><description><![CDATA[#include 
#include 

#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 

#define MEMBLKA_SIZE    (8*1024*1024)    // 内存块设备的大小 8M
#define MEMBLKA_MAJOR 0    ]]></description><category></category></item></channel></rss>