- 博客(46)
- 资源 (3)
- 收藏
- 关注
翻译 Launch Services Programming Guide - 03常见任务
本文翻译自Launch Services Programming Guide,其中带删除线的API已经被Apple标记为Deprecated。本章总结了如何使用 Launch Services 在应用程序中执行常见任务。打开项目您要使用Launch Services来执行的最常见操作是打开应用程序,文档文件和URL。根据具体情况,您可以为此使用四个Launch Services功能中的任何一个: LSOpenFSRef , LSOpenFromRefSpec ,LSOpenCFURLRef或LSO.
2021-08-13 23:09:28
285
翻译 Launch Services Programming Guide - 02基本概念
本文翻译自Launch Services Programming Guide,其中带删除线的API已经被Apple标记为Deprecated。本章向开发人员和用户介绍有关Launch Services及其API的基本信息。项目识别通常,可以通过以下两种方式之一将要操作的项目(例如应用程序,文档或文件夹)标识为Launch Services进行操作:使用 file-system reference(FSRef)指定驻留在本地或远程文件系统卷上的文件使用 Core Foundation URL .
2021-08-13 23:06:49
343
翻译 Launch Services Programming Guide - 01介绍
本文翻译自Launch Services Programming Guide。Launch Services是一种API,它能使运行中的应用程序可以以类似于Finder或Dock的方式打开其他应用程序,或文档文件,或URL(统一资源定位符)。使用Launch Services,应用程序可以执行以下任务:* 打开(启动或激活)另一个应用程序* 在另一个应用程序中打开文档或URL* 指定用于打开给定文档或URL的首选应用程序* 注册有关应用程序能够打开的文档文件和URL种类的信息* 获取适当的.
2021-08-13 22:59:43
284
翻译 如何改变NSPopover的背景颜色(包括小三角部分)?
问题:在OSX开发时,经常会使用NSPopover来弹出小窗口,那么如何改变NSPopover的背景颜色(包括小三角部分)? 解答:此方案不需要其他第三方库,仅需引入两个自定义NSView类。
2015-08-14 11:18:46
5299
原创 Can drag webview to move window in cococa?
1. 问题如果cococa程序,在一个==没有titlebar==的window里只有一个webview,是否能够==拖曳这个webview来拖动整个window==呢?当然,直接拖是不行的,webview会先接受这个拖曳drag事件。对于window中除webview以外的其他控件,其实可以直接重载NSWindow的mouseDown和mouseDragged方法来实现要的效果,但是webview
2015-03-12 22:31:44
1179
原创 cocoa使用WebView,WebKit程序运行出错
cocoa使用WebView,WebKit程序运行出错1. Error在一个cococa程序中用到了WebView来显示本地页面,但是插入webview,并且写好相应code后,引入WebKit.h,运行程序,发现运行出错,console里报错:[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebVie
2015-03-09 15:22:35
1887
转载 NSTextField 快捷键失效的解决办法
转载来自:http://blog.sina.com.cn/s/blog_575b854e0100tatl.html当程序的MainMenu中的Edit栏不存在的话,NStextField的快捷键功能会失效,因为需要使用协议重新定义它的快捷键功能。在你要使用的窗口(或view)添加如下,覆盖原有的TextField的函数。@interface NSTextField (copypas
2015-01-06 19:37:11
2687
原创 matlab中图像块(patch)处理命令小结
在使用MATLAB语言实现图像处理算法时,我们常常会遇到需要对图像块(patch)进行运算的情况。受到其他语言编程习惯的影响,循环通常是不假思索的第一选择。但由于matlab是利于矩阵运算的编程语言,采用循环只会低效和耗时。因此,下面总结了在图像处理中遇到的块运算常用的命令及代码,希望对大家有所帮助。nlfilter调用格式:B = nlfilter(A, [m n], fun);
2014-11-17 23:10:48
24459
原创 sublime text 在已经安装ConvertToUTF8插件后出现中文乱码
问题:sublime text本身是不支持中文编码的,所以x
2014-08-26 09:42:29
20023
转载 为什么要用960px?——网页内容宽度分析
为什么要用960px?——网页内容宽度分析液晶还没普及的年代,网页设计需要考虑800×600的分辨率。但如今800×600的分辨率使用率不到2%,已经可以忽略了。比这个分辨率高一级别的1024×768,使用率接近50%(国内),所以很多网站都是以1024的宽度为标准进行设计的,最常见的页面宽度是两种:1004和960。早期的网页设计师使用1004px作为页面宽度,是基于这样的考
2014-07-01 11:44:45
4202
原创 处理mathtype公式在word中与文字对齐问题
问题:最近在写论文过程中,在word文档里输入mathtype写的公式,发现公式与文字不能很好得对齐,上下有偏差,很丑,如下所示:解决办法:首先,选择所在段落右击鼠标->打开段落
2013-11-19 21:49:02
77587
5
原创 Matlab图像处理笔记(二)
说明本笔记整理记录了在使用Matlab进行图像处理学习过程中,使用到的一些常用命令、常见问题、遇到的问题及解决方案,方便日后查看,其中部分内容系来自网络。本笔记仅供学习研究,转载请注明出处@jimye。九. RGB图像如何处理Im2double:把图像变为[0,1]之间读alpha channel :[A, map, alpha] = imread(...)a=imread
2013-11-14 14:22:19
6294
原创 Matlab图像处理笔记(一)
零.杂碎I = double(imread('G:\pictures for test\flower.png'))。>> I = rgb2gray(I)。在command window写完命令后,按Esc清除整行。强烈建议在使用变量之前(特别是循环中使用数组),先预分配空间,这样容易减少很多莫名其妙的错误。数组运算符比矩阵运算符多一个”.”,对应元素运算
2013-11-14 10:58:25
6157
转载 Emmet基本使用方法
转载来自:http://www.iteye.com/news/27580Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: Zen coding下的编码演示去年年底,该插件已经改名为Emmet。但Emmet不只改名,还
2013-10-29 14:53:07
23341
2
原创 【error】new抛出std::bad_alloc
1、Error: 在处理遥感数据处理的程序中,通过new动态分配来存储数据,程序在new过程中抛出std::bad_alloc错误。2、原因及解决办法: 进程分配内存过大,网上查阅到单个win32程序进程只能分配1.5-1.6左右内存,否则会出现std::bad_alloc错误,将程序改成64位即可。
2013-06-29 15:25:52
4150
原创 常见向量范数和矩阵范数
1、向量范数1-范数:,即向量元素绝对值之和,matlab调用函数norm(x, 1) 。2-范数:,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,matlab调用函数norm(x, 2)。∞-范数:,即所有向量元素绝对值中的最大值,matlab调用函数norm(x, inf)。-∞-范数:,即所有向量元素绝对值中的最小值,matlab调用
2013-06-24 11:37:55
170308
3
原创 【编程珠玑】附录C时空开销模型
1、空间开销如果问大家sizeof(char)等于多少,大家一定都知道等于1字节。那么如果使用new运算法分别动态分配10个char变量,那么这10个char变量所占的内存空间就仅仅只有10字节吗?并不是!使用malloc动态分配可能会需要好几倍的额外开销。根据书中给出的测试程序,程序中定义了一个宏,在该宏定义中,首先给出相应结构的sizeof()信息,然后用类似下面的形式给出new分配的
2013-05-31 16:48:19
1928
原创 【编程珠玑】第七章粗略估计
编程珠玑的这一章很有意思,要对于很多生活中的平时很少考虑的统计问题进行粗略估计,这看似与软件工程无关,但实则不然,书中提到在USA,“粗略估计”已经是工程院校的标准课程,这就难怪各种神级公司如微软、谷歌等在招人时会出现下面的一些面试题了:美国有多少量汽车?美国有多少个加油站?...文章中首先提到了一个经验法则,觉得很有用。“72”法则:假设以年利率r%投资一笔钱y年,如果r
2013-05-27 18:37:25
1301
原创 【编程珠玑】第一章电话号码排序
输入:一个包含100万个正整数的文件,每个数都小于1000万。如果在输入文件中有任何整数重复出现就是致命错误,没有其他数据与该整数相关联。输出:按升序排列的输入整数的列表。#include #include #include #include using namespace std;int randInt(int start, int end){ srand(ti
2013-05-15 16:38:37
1007
原创 典型字符串匹配算法实现
0.序 相信大家对快捷键ctrl+F是做什么用的都应该很熟悉了,无论是文本编辑、网页浏览等程序上它都意味着字符串搜索,我们提供一个关键字,它将找到当前页面上的所有该关键字所在的位置。关键字称为模式串,在文本T中寻找模式串P出现的所有出现的位置,解决这种问题的算法叫做字符串匹配算法。字符串匹配算法可以说是计算机科学中最古老、研究最广泛的问题之一,并且字符串匹配的应用也随处可见,特别
2013-05-06 22:37:26
4014
原创 字符串基本操作
1、计算字符串的长度版本1:int strlen(const char* str){ int len = 0; while (*str++) len++; return len;}版本2:int strlen(const char* str){ const char *end; end = str; while (*end++) ; retu
2013-04-17 12:22:06
1076
转载 PCA降维算法总结以及matlab实现PCA
转载来自:http://blog.csdn.net/weixingstudio/article/details/8234766转载请声明出处。by watkins songPCA的一些基本资料最近因为最人脸表情识别,提取的gabor特征太多了,所以需要用PCA进行对提取的特征进行降维。本来最早的时候我没有打算对提取的gabor特征进行
2013-04-16 17:03:16
2393
原创 求解1-n之间的素数
1、简陋的算法:void prime(int n){ for (int i = 2; i < n; ++i) { int j; for (j = 2; j <= sqrt(i); ++j) // 如果i能被2到sqrt(i)之间的所有整数所整除,则其为素数 { if (i%j==0) break; } if (j>sqrt(i)) cout<<i
2013-04-16 09:18:03
6649
1
原创 【算法导论笔记】所有结点对的最短路径问题
基于矩阵乘法的动态规划算法求解所有最短路径EXTEND_SHORTEST_PATHS(L, W) n = L.rows let L' = l'(i,j) be a new n*n matrix for i=1 to n for j=1 to n l'(i,j) = ∞ return L'SLOW-ALL-PATHS-SHORTEST-PATH
2013-04-11 15:09:47
1656
原创 【算法导论笔记】单源最短路径
最短路径估计和前驱结点的初始化INITIALIZE-SINGLE-SOURCE(G, s) for each vertex v∈G.V v.d = ∞ v.π = NIL s.d = 0 松弛操作 RELAX(u, v, w) if v.d > u.d + w(u, v) v.d = u.d + w(u, v) v.π = u
2013-04-10 17:56:07
959
原创 【算法导论笔记】最小生成树
在一个连通的无向图G=(V,E)中,找到一个无环子集T(是E的子集),既能够将所有的结点连接起来,又具有最小的权重,这时的T便成为最小生成树。解决最小生成树的两个常用算法为:Kruskal算法和Prim算法。如果使用普通的二叉堆,这两个算法的时间复杂度最小为O(ElgV)。但如果使用斐波那契堆,Prim算法的时间复杂度将改善为O(E+VlgV)。基本策略GENERIC-
2013-04-10 17:33:17
1049
原创 【算法导论笔记】基本图算法
1、图的表示邻接链表和邻接矩阵两种。稀疏图常用邻接链表表示,稠密图通常用邻接矩阵表示。2、广度优先搜索广度优先搜索是最简单的图搜索算法之一,Prim的最小生成树算法和Dijkstra的单源最短路径算法都使用了类似广度优先搜索思想。该算法始终将已发现结点和未发现结点之间的边界,沿其广度方向向外扩展,也就是说,算法需要在发现所有距离源结点s为k的所有结点之后,才会发现距离源结点s为
2013-04-10 16:42:55
1645
原创 【排序算法】分配排序(C++实现)
与之前的那些比较排序不同,分配排序在排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序。它们的时间复杂度可达到线性阶:O(n)。常见的分配排序有计数排序(Counting Sort),基数排序(Radix Sort),桶排序(Bucket Sort),美国旗帜排序(American Flag Sort),珠排序(Bead Sort),爆炸排序(Burst Sort),鸽巢排序(Pig
2013-03-11 13:13:56
3813
原创 【排序算法】归并排序(C++实现)
归并排序是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。常见的归并排序有两路归并排序(Merge Sort),多相归并排序(Polyphase Merge Sort),Strand排序(Strand Sort)。下面介绍第一种:(一)两路归并排序最差时间复杂度:O(nlogn)平均时间复杂度:O(nlogn)最差空间复杂度:O(n)稳定性:稳定
2013-03-10 22:01:02
63128
12
原创 【排序算法】插入排序(C++实现)
插入排序的基本思想是每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。常见的插入排序有插入排序(Insertion Sort),希尔排序(Shell Sort),二叉查找树排序(Tree Sort),图书馆排序(Library Sort),Patience排序(Patience Sort)。下面介绍前两种:(一)直接插入排序最差时间复
2013-03-10 20:22:03
58407
8
原创 【排序算法】选择排序(C++实现)
选择排序算法就是每一趟从待排序的记录中选出关键字最小(最大)的记录,顺序放在已排好序的子文件的最后(最前),直到全部记录排序完毕。常见的选择排序有直接选择排序(Selection Sort),堆排序(Heap Sort),平滑排序(Smooth Sort),笛卡尔树排序(Cartesian Sort),锦标赛排序(Tournament Sort),循环排序(Cycle)。下面介绍前两种:(一)
2013-03-10 16:01:38
18862
3
原创 【排序算法】交换排序(C++实现)
所谓交换,就是根据序列中两个记录值的比较结果来对换这两个记录在序列中的位置。交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。常见的交换排序有冒泡排序(Bubble Sort),鸡尾酒排序(Cocktail Sort),奇偶排序(OddEven Sort),地精排序(Gnome Sort),快速排序(Quick Sort),臭皮匠排序(Stooge Sort),梳
2013-03-07 22:16:07
9192
1
原创 扫除算法(sweep)求逆矩阵
高斯约旦消去法是求矩阵逆的一种常用算法,但使用计算机来求解时,需要开辟另一个内存存放变化时的右矩阵A-1。而扫除变化时对高斯约旦消去法的一种改进,它可以节省存储空间,不需要开辟内存单独存放右矩阵。下面使用三阶例子来说明:使用高斯约旦消去法,当左边的矩阵变为单位矩阵时,右边就得到原来左边矩阵的逆矩阵。如果第1步变第1列为基向量,得当然,第1步不一定要变第1列为基向量,如果
2012-11-21 14:25:56
6381
原创 C++读写.mat文件
最近在编写C++程序的过程中,需要使用matlab生成的.mat文件,于是查找了基本使用方法。我的计算机环境是win7 64位系统,VS2010,matlab R2010b。一、工程配置:1.C/C++->常规->附加包含目录 添加:MATLAB\R2010b\extern\includeMATLAB\R2010b\extern\include\win642.链接器->常规
2012-11-21 10:50:34
60668
48
原创 三种快速排序算法的实现(递归算法、非递归算法、三路划分快速排序)
快速排序的三个步骤:1、分解:将数组A[l...r]划分成两个(可能空)子数组A[l...p-1]和A[p+1...r],使得A[l...p-1]中的每个元素都小于等于A(p),而且,小于等于A[p+1...r]中的元素。下标p也在这个划分过程中计算。2、解决:通过递归调用快速排序,对数组A[l...p-1]和A[p+1...r]排序。3、合并:因为两个子数组时就地排序,将它们的合并并
2012-11-21 10:02:02
23353
5
转载 有一个大西瓜,用水果刀平整地切,总共切9刀,最多能切成多少份,最少能切成多少份?
原题:有一个大西瓜,用水果刀平整地切,总共切9刀,最多能切成多少份,最少能切成多少份?答案:在不移动西瓜的情况下,最少10,最多130。最多的情况,可以将题目转换:”n个平面最多能把空间分成多少个部分?“解题思路:将n从0到9依次列出,发现红色部分的数值均为其左边与左上角的两个数之和。n
2012-11-08 17:30:55
34519
原创 5月24日 – 6月11日 CUDA编程学习笔记
1、 下载CUDA工具包、驱动和SDK,依次安装,编译SDK里的工程文件,具体配置方法可谷歌百度,基本步骤就是先编译sdk里面的几个库,然后设置代码相应库函数关键字高亮。2、 下载CUDA调试工具Nsight,可以实现单卡双机调试或双卡单机调试,虽然听说2.2可以单卡单机,但还没找到方法。具体调试可参考Nsight的help文档和cudabbs.it168.com上的别人笔记(CUDA双机Ns
2012-06-12 21:00:08
5781
原创 【C++Primer学习笔记】第4章 数组和指针
1、现代C++程序中应尽量使用vector和迭代器类型,而避免使用低级的数组和指针。设计良好的程序只有在强调速度时才在类实现的内部使用数组和指针。 2、与vector类型相比,数组的显著缺陷在于:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。数组没有获取其容器大小的size操作,也不提供push_back操作在其中自动添加元素。如果需要更改数组的长度,程序员只能创建一个更大的新
2012-05-04 16:47:26
851
转载 混合像元分解研究综述——线性混合像元分解算法
本文转载来自:http://hi.baidu.com/hilbertspace/blog/item/aae6a20f2cb564e4ab6457c5.html-----------------------------------------------------------------------------------------------------------------------
2012-04-13 11:33:29
11968
1
原创 【C++Primer学习笔记】第3章 标准库类型
在本章中,简要介绍了string、vector、bitset三个标准库类型。 1、using声明1)在引用标准库中名字时,需要加上作用域操作符,例如 std::cin。2)使用 using声明可以更简洁得使用命名空间,例如只需在文件开头添加using std::cin,则在下面可以直接引用名字,而不需要再引用该名字的命名空间。3)在头文件中,必须总是使用完全限定
2012-04-10 10:57:35
867
CUDA by Example(英文原书+自带源代码)
2012-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人