Sean_SJTU
码龄12年
关注
提问 私信
  • 博客:261,289
    社区:619
    问答:534
    262,442
    总访问量
  • 35
    原创
  • 721,391
    排名
  • 65
    粉丝
  • 0
    铁粉

个人简介:研究兴趣模式识别、机器学习、数据挖掘。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2013-05-12
博客简介:

Sean.W的专栏

博客描述:
To be a better programmer.
查看详细资料
个人成就
  • 获得120次点赞
  • 内容获得74次评论
  • 获得303次收藏
  • 代码片获得171次分享
创作历程
  • 4篇
    2015年
  • 37篇
    2014年
  • 15篇
    2013年
成就勋章
TA的专栏
  • Web
    6篇
  • C++
    16篇
  • C
    9篇
  • 人脸识别
    1篇
  • Linux
    6篇
  • 模式识别
    7篇
  • Java
    4篇
  • Qt
    3篇
  • 疑难问题
    13篇
  • Android
    2篇
  • 算法
    2篇
  • 数据结构
    2篇
  • 机器学习
    2篇
  • Python
    3篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

352人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C语言二维数组中的*(p+1)的确切含义

答:

很有趣的一个问题,首先确定一点指针p+1指向的新地址并不是p指向的下一个字节,而是以p指针指向的类型大小作为单位步长。这里p指向int型3维数组,类型大小为12字节(sizeof(*p)=12),所以p+1地址从p原地址增加12字节指向a[1]。

然而,上面打印出的结果*(p+1)却并不是a[1][0]对应的值4,而是a[1][0]的地址,实际上与直接打印p+1是相同的。原因在于p+1后的指针指向的类型仍为int[3],解引用不知道如何正确打印这种类型。所以,如果希望像预期一样*(p+1)能打出值4,需要对指针类型进行强制类型转换,改成如下形式:

 printf("%d", *(int*)(p+1));

顺便说一句,你的printf中用的%p以指针形式打印,这个无论怎样输出都是地址,改成%d应该更适合揭示真正的问题。

回答问题 2015.08.23

selenium+python 爬取网络图片(2) -- 百度

上一篇博文《selenium+python 爬取网络图片(1) -- soso、谷歌、好搜》介绍了如何用selenium+python在诸如soso、谷歌、好搜等搜索引擎上爬取图片的方法,但是却没用提到百度,因为百度的情况比较特殊。首先,百度图片的数据更好,因为每幅图片都有“data-desc”描述可以作为图像很好的语义标签,此外基于百度较强的技术其查询搜索得到的图片相关性较高,后续人工筛选工作较少;其次,百度图片的数据不容易爬取,如果像前一篇文章中的方法取img标签的src值作为下载url,是下载不到图片
原创
发布博客 2015.01.30 ·
20344 阅读 ·
6 点赞 ·
0 评论 ·
24 收藏

selenium+python 爬取网络图片(1) -- soso、谷歌、好搜

做图像处理的朋友,都时常需要收集整理大量的图像数据集。做科研时有各种现有的标准数据集大家都直接拿来用,但是工程上却经常需要自己收集图片,从网上爬取图片便成了比较常见的任务。为了用python完成这个任务,需要解决如下两个问题:1. 图片素材源自哪里呢?第一直觉就是搜索引擎里的图片,比如要收集手机的图片,则进入搜索引擎搜索关键字即可得到大量相关图片。2. 动态网站的内容往往是通过aj
原创
发布博客 2015.01.30 ·
10780 阅读 ·
4 点赞 ·
1 评论 ·
16 收藏

opencv图像原地(不开辟新空间)顺时旋转90度

前一阵朋友碰到这么一道题:将图像原地顺时针旋转90度,不开辟新空间。此题看似平易(题目简短),仔细研究发现着实不容易。经过一番探索后,终于找到了正确的算法,但是当使用opencv实现时,有碰到了困难而且费了一番周折才找到问题所在。首先,解决这个问题,先简化成原地90度旋转一M×N的矩阵A(注意不是N×N方阵)。对于2×3的矩阵A = {1,2,3;4,5,6},其目标为矩阵B = {4,1;5,2;6,3}。因为是原地旋转,这里A和B应指向同一大小为6的内存空间。这里有这样一个重要的导出公式,就是
原创
发布博客 2015.01.29 ·
5394 阅读 ·
4 点赞 ·
4 评论 ·
3 收藏

C++遍历文件夹下所有文件

为数不多的好用的代码,遍历文件夹获取所有子文件名,"filespec"可用通配符“*?”。注意如果用相对路径的话,获取所有文件名后应再调用SetInitDir将初始目录改为当前目录,否则中间生成的文件都会放在之前的“InitDir”内。      C/C++遍历文件夹感觉真是很不好用,建议还是使用C/C++做单任务处理,然后通过脚本语言实现遍历比较合理。CBrowseDir.h
转载
发布博客 2015.01.29 ·
2358 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

一点也不“easy”的easy_install -- windows or linux?

easy_install可以用于便捷地安装其他python工具包,但实际安装过程中,并不便捷(至少我的电脑是这样)。。首先windows下安装easy_install (32和64位都是一样的ez_setup.py安装脚本):可能会碰到的问题原因是国内某些软件安装后修改注册表导致的库无法安装,需要修改python的lib目录下文件,参见http://bitbucket.or
原创
发布博客 2014.12.26 ·
1447 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

晦涩的翻译LRU (Least Recently Used) - 最近最少使用?

在学习缓存的原理时候,会碰到这样一种情况,即当缓存不命中且缓存已满的情况,需要选择将缓存中的某一数据块替换为仍在内存中的目标数据块,但是选择缓存中的哪块被替换更高效呢?就有这个替换策略LRU (Least Recently Used)。    这里插一段,一般网上的搜索结果包括百度百科给的解释都是将LRU定义为针对内存管理的页面替换算法,即针对的是虚拟内存管理时的缺页现象。而我在第一段
原创
发布博客 2014.12.13 ·
3666 阅读 ·
9 点赞 ·
3 评论 ·
4 收藏

linux环境jdk安装及配置

注意:这里选择下载jdk并自行安装,而不是通过源直接安装(apt-get install)1、下载jkd( http://www.oracle.com/technetwork/java/javase/downloads/index.html)1.1 对于32位的系统可以下载以下两个Linux x86版本(uname -a 查看系统版本)1.2 64位系统
转载
发布博客 2014.11.29 ·
719 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

32/64位平台printf uint64的方法

在32位平台 typedef unsigned long long int  uint64_t;在64位平台 typedef unsigned long int   uint64_t;不同的typdef,要求在printf中使用不同的length modifier,uint64_t 在32位使用ll,在64位使用l。除了定义数据类型,C99还定义了相应数据类型的打印方式,使用PRIu64打
转载
发布博客 2014.11.02 ·
2228 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

opencv脱离动态库的静态链接方法 - staticlib

要给老师整理做过的算法各种脱离OPENCV库的可执行文件,就又折腾起了静态链接问题 ,现在来说说如果想要你的程序在一台裸奔的电脑上运行,需要怎么办。        以OPENCV2.4.3+VS2010        第一种方法是粗暴的什么都不改变然后将有可能用到的DLL都拷贝到文件夹中,这时候如需要opencv_highgui243.lib,是来自 opencv\build\x8
转载
发布博客 2014.10.19 ·
4102 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

linux C++ 莫名奇妙的段错误(segmentation fault),无法调用其它函数

进来在linux下开发C++项目,遇到了非常奇怪的bug。项目需要多线程实现,在写好代码后,每当运行到线程函数内部,当内部调用其它函数如printf、fopen等时就会提示段错误(segmentation fault)。编程很久了,自觉不会出现很低级的语法错误,经仔细检查许久确实也未发现任何问题。在给很多厉害的朋友看过代码后也未能帮助找到这个bug,后来经自己一番思索终于找到问题所在。下面先给出线
原创
发布博客 2014.10.06 ·
6042 阅读 ·
6 点赞 ·
0 评论 ·
11 收藏

C++类构造优化 - 不调用拷贝构造函数

假如有下面这样一个类:class A{public: A(int p, char q):x(p), c(q){ cout << "constructor called" << endl; } A(const A& a){x = a.x; c = a.c; cout << "copy constructor called" << endl;}~A(){cout << "destruc
原创
发布博客 2014.09.28 ·
2152 阅读 ·
3 点赞 ·
1 评论 ·
0 收藏

c++中的字节对齐

字节对齐 1. 基本概念字节对齐:计算机存储系统中以Byte为单位存储数据,不同数据类型所占的空间不同,如:整型(int)数据占4个字节,字符型(char)数据占一个字节,短整型(short)数据占两个字节,等等。计算机为了快速的读写数据,默认情况下将数据存放在某个地址的起始位置,如:整型数据(int)默认存储在地址能被4整除的起始位置,字符型数据(char)可以存放在任何地址
转载
发布博客 2014.09.09 ·
961 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(3) windows下可运行的mat转xml,VOC-release4.01 DPM训练的model(mat)转为OpenCV latentsvm可以加载的model(xml)

opencv例程文件夹内有mat2xml.m文件,但是不好用,提示未能找到rootfilter,shu与mat
转载
发布博客 2014.07.28 ·
2823 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

(2) 用DPM(Deformable Part Model,voc-release4.01)算法在INRIA数据集上训练自己的人体检测模型

步骤一,首先要使voc-release4.01目标检测部分的代码在windows系统下跑起来:参考在window下运行DPM(deformable part models) -(检测demo部分)步骤二,把训练部分代码跑通,在VOC数据集上进行测试,如下文:在windows下运行Felzenszwalb的Deformable Part Model(D
原创
发布博客 2014.07.28 ·
6006 阅读 ·
4 点赞 ·
17 评论 ·
12 收藏

(1) 在window下运行DPM(deformable part models) -(检测demo部分)

可以从http://www.cs.berkeley.edu/~rbg/latent/index.html获得的源码,采用Matlab和C++编写,我下载的是voc-release4.01版本,大概是因为版权的问题源码是在 Linux and Mac OS上运行的,考虑许多人在Linux平台上运行该源码不方便,这里将源码转化到Windows平台上运行。检测demo部分:1.d
转载
发布博客 2014.07.28 ·
3963 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

为什么C++赋值运算符重载函数不能被继承?

为什么C++赋值运算符重载函数不能被继承?(zz:http://www.cqumzh.cn/topic_show.php?tid=134570)这个问题曾经困扰过我一阵子。请先看一下下面的源代码:class A1{public:         int perator=(int a)         {                 return
转载
发布博客 2014.07.24 ·
1735 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

Android应用开发进阶篇-场景文字识别

发布资源 2014.07.12 ·
rar

Android应用开发进阶篇-场景文字识别

由于研究生毕业项目需要完成一个基于移动终端的场景文字识别系统,虽然离毕业尚早,但出于兴趣的缘故,近一段抽时间完成了这样一套系统。基本的架构如下: 客户端:Android应用实现拍摄场景图片,大致划出感兴趣文字区域,通过socket通信上传服务器端识别; 服务器端:Python server进行socket通信监听,连通后调用文字识别引擎(exe可执行程序),将识别结果返回;
原创
发布博客 2014.07.12 ·
3182 阅读 ·
5 点赞 ·
3 评论 ·
6 收藏

Ubuntu下面安装eclipse for c++

今天终于找到了一篇很好得文章,在Ubuntu下面怎么很方便的安装eclipse,太好了,下面分享一下~1. 下载jre,eclipse,cdt其中jre是java运行环境,eclipse需要先装jre,才可能运行,cdt是在eclipse中运行c\c++程序的插件。1.1 下载jre网址是:java.sun.com,点击java se,红色划线部分(如下图)
转载
发布博客 2014.07.01 ·
989 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多