<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mir_age的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mir_age</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mir_age]]></copyright><item><title><![CDATA[大数据乘法算法]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/74332519</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/74332519</guid><author>mir_age</author><pubDate>Tue, 04 Jul 2017 16:43:51 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;struct bigdatacom
{
protected:
    char dataa[100];
    char datab[100];
public:
    void]]></description><category></category></item><item><title><![CDATA[c++ 重载new和delete实现内存管理]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/74299057</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/74299057</guid><author>mir_age</author><pubDate>Tue, 04 Jul 2017 11:31:05 +0800</pubDate><description><![CDATA[#include <iostream>
#include <stdlib.h>
using namespace std;
//全局的new delete监视所有内存释放分配
//局部的new delete监视某个类的所有分配释放void* operator new(size_t size)
{
    if (size == 0)
    {
        return 0;
    }]]></description><category></category></item><item><title><![CDATA[左值引用与右值引用]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/74112936</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/74112936</guid><author>mir_age</author><pubDate>Sun, 02 Jul 2017 13:31:54 +0800</pubDate><description><![CDATA[左值是可以放在等号左边被赋值的值 
右值是在赋值号右边取出值赋给其他变量的值 
左值必须在要在内存有实体，右值可以在内存也可以在寄存器 
一个&代表引用左值，两个&代表引用右值 
右值引用用于对象拷贝，直接从寄存器里拷贝，不需要在内存中建立副本—内存优化#include <iostream>
#include <stdlib.h>
using namespace std;/*
左值是可以放在等号左边]]></description><category></category></item><item><title><![CDATA[二进制文件读写]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/74038954</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/74038954</guid><author>mir_age</author><pubDate>Sat, 01 Jul 2017 11:08:45 +0800</pubDate><description><![CDATA[#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>
#include <stdlib.h>
#include <string.h>/*
size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
size_t fwrite(const void* buffer, size_t]]></description><category></category></item><item><title><![CDATA[c++ 学习   内存四区]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73928757</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73928757</guid><author>mir_age</author><pubDate>Thu, 29 Jun 2017 22:27:22 +0800</pubDate><description><![CDATA[静态变量是指内存位置在程序执行期间一直不变的变量.
一个代码块内部的静态变量只能在这个代码块内部被访问.
static变量在程序一开始加载内存的时候就已经存在了,并且其初值只能初始化一次.
代码块之外的静态变量的作用域为定义这个变量的文件内部.
extern int n; //变量n在其他文件中定义.
c语言中全局变量和静态变量会自动初始化为0
1.1 内存四区1.1.1   代码区  
代码区co]]></description><category></category></item><item><title><![CDATA[c++学习 函数指针]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73770575</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73770575</guid><author>mir_age</author><pubDate>Tue, 27 Jun 2017 09:40:33 +0800</pubDate><description><![CDATA[#include <stdio.h>
#include <process.h>
#include <stdlib.h>/*
1.一个函数在编译的时候会分配一个入口地址，这个入口地址就是函数的指针，函数名称就代表函数的入口地址
2.将函数的指针作为另一个函数的参数称为回调函数*/
void func(int n)
{
    printf("func %d\n", n);
}int mymax(int]]></description><category></category></item><item><title><![CDATA[c++ 学习二维数组与指针]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73744131</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73744131</guid><author>mir_age</author><pubDate>Mon, 26 Jun 2017 20:26:33 +0800</pubDate><description><![CDATA[#include <stdio.h>void func(int p[][4])//形参代表指针变量
{
    //按列打印二维数组
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            printf("%d\n", *(*(p + j) + i));]]></description><category></category></item><item><title><![CDATA[C++ 指针与数组的练习]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73718311</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73718311</guid><author>mir_age</author><pubDate>Sun, 25 Jun 2017 15:58:38 +0800</pubDate><description><![CDATA[int main()
{
    int array[10] = { 6, 1, 2, 4, 5, 7, 9, 8 };
    int *p1 = array;
    int *p = &array[0]; 
    printf("%p, %p\n", p, p1);// ==
    printf("*p = %d\n", *p);//6
    printf("*p1 = %d\n", *]]></description><category></category></item><item><title><![CDATA[c++学习    动态链接库的使用]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73702872</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73702872</guid><author>mir_age</author><pubDate>Sun, 25 Jun 2017 11:48:44 +0800</pubDate><description><![CDATA[DLL 是 Dynamic Link Library 的缩写，译为“动态链接库”。DLL也是一个被编译过的二进制程序，可以被其他程序调用，但与 exe 不同，DLL不能独立运行，必须由其他程序调用载入内存。DLL 中封装了很多函数，只要知道函数的入口地址，就可以被其他程序调用。Windows API中所有的函数都包含在DLL中，其中有3个最重要的DLL：
Kemel32.dll：它包含那些用于管理内]]></description><category></category></item><item><title><![CDATA[opencv学习笔记（6）----鼠标操作]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73656605</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73656605</guid><author>mir_age</author><pubDate>Fri, 23 Jun 2017 22:16:08 +0800</pubDate><description><![CDATA[#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;#define WINDOW_NAME "程序窗口"//---------------------------------【全局函数声明部]]></description><category></category></item><item><title><![CDATA[opencv学习笔记（5）---- 滑动条的创建和使用]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/73647848</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/73647848</guid><author>mir_age</author><pubDate>Fri, 23 Jun 2017 14:53:57 +0800</pubDate><description><![CDATA[#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
/*
关于imread函数：
Mat imread(const string& filename,int flags = 1);
第二个]]></description><category></category></item><item><title><![CDATA[opencv学习笔记（4）---- 读取视频；调用摄像头；Canny边缘检测]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72967703</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72967703</guid><author>mir_age</author><pubDate>Fri, 09 Jun 2017 18:39:55 +0800</pubDate><description><![CDATA[读取视频#include <opencv2\opencv.hpp>
using namespace cv;int main() 
{
    VideoCapture capture("1.avi");
    while (1)
    {
        Mat frame;
        capture >> frame;
        imshow("读取视频", frame);]]></description><category></category></item><item><title><![CDATA[opencv学习笔记（3） 锐化图像 邻域操作 ROI]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72870396</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72870396</guid><author>mir_age</author><pubDate>Mon, 05 Jun 2017 19:22:46 +0800</pubDate><description><![CDATA[在图像处理中，通过当前位置的相邻像素计算新的像素值是很常见的操作，这是需要同时遍历图像的若干行。锐化图像原理图像锐化基于拉普拉斯算子，将一副减去它经过拉普拉斯滤波之后的图像，这幅图像的边缘部分将得到放大，即细节部分更加锐利，锐化算子的公式如下： 
sharpened_pixel=5*current-left-right-up-down程序示例void sharpen(const cv::Mat &i]]></description><category></category></item><item><title><![CDATA[利用模板法的光条中心提取]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72865238</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72865238</guid><author>mir_age</author><pubDate>Mon, 05 Jun 2017 11:11:10 +0800</pubDate><description><![CDATA[算法描述线结构光的条纹形状随着物体表面的变化而不同，在比较小的范围内，可 以认为线结构光条纹只有四种模式，水平，垂直，左倾45°，右倾45°。为了能够准确地描述线结构光条纹的形状，在模块选取时一般根据光带的粗细程度进行选取，因为太大不能准确的反映出条纹的细节，太小又不能反映出光带的走向，因此选取了一个9x9的模块来与之相匹配对应这四种模式。设计了四种方 
向的模板，将模板记为T，模板内的元素为0和l]]></description><category></category></item><item><title><![CDATA[学习c++中的链表]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72705323</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72705323</guid><author>mir_age</author><pubDate>Wed, 24 May 2017 19:57:38 +0800</pubDate><description><![CDATA[为什么要使用链表我们知道，数组式计算机根据事先定义好的数组类型与长度自动为其分配一连续的存储单元，相同数组的位置和距离都是固定的，也就是说，任何一个数组元素的地址都可一个简单的公式计算出来，因此这种结构可以有效的对数组元素进行随机访问。但若对数组元素进行插入和删除操作，则会引起大量数据的移动，从而使简单的数据处理变得非常复杂，低效。 
为了能有效地解决这些问题，一种称为“链表”的数据结构得到了广泛应]]></description><category></category></item><item><title><![CDATA[动态数组]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72633281</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72633281</guid><author>mir_age</author><pubDate>Mon, 22 May 2017 23:48:01 +0800</pubDate><description><![CDATA[数组变量和指针变量C++数组变量实际是指针变量,指向数组的第一个索引变量 
有一个重要区别是不可更改数组变量中的指针值//p和a是同类型变量
int a[10];
typedef int* IntPtr;
IntPtr p;
p = a; //合法
IntPtr p2;
...    //为p2赋一个指针值
a = p2; //非法, 不能为数组a赋不同的地址
创建和使用动态数组动态数组使用new创]]></description><category></category></item><item><title><![CDATA[关于指针的初步学习]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72598564</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72598564</guid><author>mir_age</author><pubDate>Sun, 21 May 2017 16:01:17 +0800</pubDate><description><![CDATA[指针变量的声明虽然指针是内存地址，而且内存地址是数字，但不能将指针存储到int或double类型的变量中。容纳指针的变量必须声明为指针类型Type_Name *Variable_Name1, *Variable)Name2;
//示例
int *p1, *p2, v1, v2;  //p1,p2是指针类型变量；v1,v2是普通变量假如指针变量p1包含变量v1的地址，就说指针变量“指向变量v1”//可]]></description><category></category></item><item><title><![CDATA[opencv学习笔记（1）----图像读写；添加噪声]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72588283</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72588283</guid><author>mir_age</author><pubDate>Sat, 20 May 2017 22:04:33 +0800</pubDate><description><![CDATA[前言学习使用opencv2.4.9 + vs2013 的编译环境，环境配置简单，不多赘述 
opencv2各模块功能 
opencv_core：包含核心功能，尤其是底层数据结构和算法函数 
opencv_imgproc : 包含图像处理函数 
opencv_highgui : 包含读写图像及视频函数，以及操作图形用户界面函数 
opencv_features2d : 包含兴趣点检测子，描述子和兴趣点]]></description><category></category></item><item><title><![CDATA[opencv学习笔记（2）----颜色缩减（使用指针遍历图像）]]></title><link>https://blog.youkuaiyun.com/mir_age/article/details/72588266</link><guid>https://blog.youkuaiyun.com/mir_age/article/details/72588266</guid><author>mir_age</author><pubDate>Sat, 20 May 2017 22:00:32 +0800</pubDate><description><![CDATA[知识点
彩色图像由三个通道组成，由于每个强度值都是用一个8位的unsigned uchar表示，所以全部的可能颜色数目为256*256*256。有时为了降低复杂度，需要降低颜色数量
原理如下：将RGB空间分为大小相等的格子，将每个颜色维度降为原来的1/N ;原始图像中的每个颜色都替换为它所在的格子的中心对应的颜色。
算法：对于每个通道，其值除以N（整数除法，舍去余数），然后再乘以N，就得到256/N]]></description><category></category></item></channel></rss>