<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
	<title>弱者道之用</title>
	<link>http://blog.verycd.com/ari/req=showblog</link>
	<description>弱者道之用 Syndication</description>
	<pubDate>Wed, 16 Dec 2009 05:17:19 +0800</pubDate>
	<webMaster>no-reply@mail.verycd.com (VeryCD.com 分享互联网社区)</webMaster>
	<generator>Invision Community Blog</generator>
	<ttl>60</ttl>
	<item>
		<title>5月6日出生金牛座Taurus的人:梦想实现者</title>
		<link>http://blog.verycd.com/ari/showentry=55759</link>
		<category>空——玄妙之门</category>
		<description><![CDATA[5月6日出生的人很清楚梦想、想像和潜意识是怎么一回事，这样的天赋有两种表现方式：一种是给予他人支持、与他人心意相通，例如老师、顾问、父母；别一种则是实践别人的梦想，成为明星。前一种人能引导身旁需要帮助的人，在他们有困难时，指点迷津；第二种明星型的人则相当有实践力，会勇敢地去追求多数望而却步的梦想。 　<br /><br />这种探索想象的能力相当独特，但必须有智慧地善加运用才行。如果他们将这项天赋运用在不道德的事情上，或者是漫无目的地滥用，便可能会变成为了独自的私利而操控别人，或是反而让自己陷入不想要的事业或婚姻里。反之，如果能认清自己的极限，并能客观平等地对待自己和他人的目标，便是这天出生的人最大的成功了！ <br /><br />5月6日出生的人大多有个不愉快的童年，不过他们会凭着勇气和不屈不挠的精神加以克服。这些困难反而让他们比一帆风顺长大的人，更多了一分对人生的洞察力。如果这天出生的人能以同理心好好莱坞运用这项智慧，对社会来说便是无价之宝。不过，5月6日出生的人虽然能给别人极大的帮助，但是对自己的痛苦、困难却往往无法解决，原因就在于他们习惯隐藏真实的自我，不愿对他人敞开自己。 <br /><br /><br />正因他们是如此敏感，或者说是受到强大潜意识的支配的缘故，这天出生的人情绪特别容易起伏波动，身体也常常这儿痛、那儿痛。大多数在这天出生的人的一生都会不断地为了克服障碍而努力，而且强烈地想要掌握自己的命运，会使他们渴望将每一分钟都做最严谨的妥善安排，并且担心若不这样步步为营，事情就会失控。所以，他们看似合理、有效率的生活下，心中其实可能暗藏着蠢蠢欲动的火山，但关于这一点他们自己却毫不知情。 <br /><br />然而，他们对别人不理性的行为却了若指掌，就好像有精准的第六感一般。因此旁人旁徨无助时绝对可以依赖他们的智慧和勇气。他们通常会护卫弱者，因为他们太了解弱者的心情了！这天出生的人，如果长得还算不错，千万要小心别让求助的人爱上你，让他们把你当做偶像，虽说这样能满足虚荣心，不过却会让他们了解自我的过程变得更加缓慢。 <br /><b>幸运数字和守护星</b> <br />5月6日出生的人受数字6和金星影响。受幸运数字6影响的人极容易坠入情网，身边多半不缺仰慕者，再加上金星（金牛座的主宰行星）也代表了积极的社会互动，所以5月6日出生的人必定会和其他人有许多社交接触。受数字6影响的人，爱情几乎可说是他们一生中最主要的课题。<br /><br /><b>健康</b> <br />5月6日出生的人由于潜意识和幻想特别活跃，因此较容易处在情绪压力下，虽然他们对情绪转变、歇斯底里，以及其他情绪问题了若指掌，但那是对别人问题才有的客观态度，因此，千万小心别让自己也成为情绪失控的受害者。另外，千万小心别让自己也成为情绪失控的受害者。另外，他们缺乏自信，所以应该尝试用更实际的角度来看待自己，建立起自信。不过，也要小心别矫枉为正，变得太过专断。要注意别对性爱与爱情过分沉溺。饮食文献，新鲜蔬菜和五谷类食物能帮助他们平衡太过敏感的情绪，顺势疗法和药草疗法也都会有不错的帮助。<br /><br /><b>建议</b> <br />好好管理自己的情绪。乐于随时帮助他人，同时不要害怕请求协助。维持居家环境井然有序。善用洞察力，永远保持对别人情绪的敏感度！ <br /><br /><b>名人</b> <br />弗洛依德(Sigmund Freud)犹太裔奥国精神心理学家，1900年发表《梦的解析》，主张性欲望受到压抑，以掩饰的形式表现出来就是梦，这种廉洁引发学界间极大的争议，但他仍拥有众多信徒，并被尊为精神分析学之父。 <br /><br />台湾旅日围棋名家林海峰。 <br /><br />法国大革命时期政治家罗伯斯比(Maximilien Robespierre)，急进派领袖，推动恐怖政治，后来被送上断头台。 <br /><br />美国探险家及科学家皮里(Robert E. Peary)，第一位踏上北极的人。 <br /><br />范伦铁诺(Rudolph Valentino)默片时期的传奇人物，作品有《酋长》，在银幕上创造了拉丁情人的典型形象。31岁时即英年早逝，使得无数女性影为伤心不已。 <br /><br />德国电影导演奥夫尔斯(Max Ophuls)，作品有《一位陌生女子的来信》、《倾国倾城欲海花》等片。 <br /><br />美国导演、制作人及演员奥森威尔斯(Orson Welles)，作品有《大国民》、《上海小姐》、《历劫佳人》，获奥斯卡终身成就奖。 <br /><br />日本小说家井上靖等书，著有《楼兰》。 <br /><br /><b>塔罗牌</b> <br />大秘仪塔罗牌的第6张是“恋人”，象征通过两性结合的“爱”，能使全人类团结在一起。牌面正立时表示着道德、美学以及肉体上更高层次的感情与渴望；不过牌面倒立则代表欲求不满、多愁善感和迟疑不决。 <br /><br /><b>静思语 <br />走错路时，只要折回，再重新选择一条新的道路就好了！ </b><br /><br /><b>优点 <br />敏感、机敏、富想像力。 </b><br /><br /><b>缺点 <br />情绪不稳、痛苦、沉溺 。<br /></b><br /><br />]]></description>
		<pubDate>Sun, 22 Nov 2009 13:58:45 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55759</guid>
	</item>
	<item>
		<title>9月13日出生处女座Virgo的人:热情的看守者</title>
		<link>http://blog.verycd.com/ari/showentry=55758</link>
		<category>空——玄妙之门</category>
		<description><![CDATA[9月13日出生的人会将全部的心力投注在手边的工作上。上天赋予他们惊人的专注力以及灵活的判断力，在追求成功时，或许会遭受到很多的阻碍，但他们从不怀疑自己的最终目标。的确，很多出生于这一天的人颇有定力，都认为自己有克服任何困难的神奇力量。他们并不迷信，也不想为自己所做的事找理由，总是勇往直前、不说废话。而且，在许多特殊的情况下，9月13日出生的人竟然能够处理二些一般人认为的［不可能的任务］，简直叫人叹服。 <br /><br />虽然，9月13日的人很固执，会强烈地固守某些观念或主张，可是，一旦发现自己错了，他们会很快地修正。他们的热诚与自我奉献常能赢得别人的尊敬，即使是反对者也不得不尊敬他们。当生命到了某个时刻，他们会大幅度地改变当前既定的方向，一举朝另一个崭新的世界努力，然后，至死不悔地坚守下增，直到有个惨痛或快乐的结局出现。一般说来，9月13日出生的人颇有定力，一旦下定决心，就不会轻易动摇－虽然有时候，他们这么做可能只是权宜之计，而非真的要引起不适当的破坏。 <br /><br />在家人和同事之间，9月13日出生的人很可能是相当专制而不通情理的。一般而言，他们重视事业或工作团体的基于家人或朋友，但这并不表示他们不负责任（相反地，他们都具有强烈的责任感），主要是因为他们觉得家人和朋友都过得不错，至少在生活上是无虑的，所以就认为自己没有后顾之忧，可以一心一意往前冲。 <br /><br />9月13日出生的人要留意自己一些不留情面的特质。虽然，这并不表示他们居心不良或是不择手段想与人竞争，兴不过是表示他们积极地为计划、远景或承诺而一头栽入工作中，不会因为良心不安而做妥协，或中途抽身而退。<br /><br />虽然今天出生的人意志力与专注力都很强，但是在感官上却有极为强烈的生物需求，想与伴侣或双亲一起分享生活上的点滴。不管有什么样的缺点，9月13日出生的人都希望伴侣或双亲能完全地接纳他们，他们也颇能以这种态度对待他人，只不过很可能会在对别人的奉献分居、离婚（或配偶过世之后），虽然9月13日出生的人（特别是女性）会再度充满活力地打起精神过日子，可是他们还是会与原先的伴侣一起分享工作中的一切。 <br /><b>幸运数字和守护星</b> <br />9月13日出生的人会受数字4（1＋3＝4）和天王星的影响。天王星会带来反覆无常与脾气暴躁的特质，由于9月13日出生的人经常涉入一些影响深远的活动－不论是现实的观念中，因此他们必须以逻辑性的水星（处女座的主宰行星）本质来驾控天王星的特性。天王星同时也带来变化与出乎常轨的行为，这也说明了9月13日出生的人为什么有极端的行为模式。虽然有许多人认为数字13是不吉利的，但实际上，它却是个力量非常大的数字。9月13日出生的人必须明智地运用他们的影响力，一旦拿捏不准，将面临自毁的危险。<br /><br /><b>健康</b> <br />通常9月13日出生的人拥有旺盛的精力、冲劲和良好的健康，他们很直接地把脑子里也身体上不需要或不能用的燃烧殆尽。可是就算是铁打的身体也会有病倒的一天。所以，这一天出生的人必须特别小心因为压力所引起的慢性疾病，如糖尿病和癌症。奉劝今天出生的人尽可能让饮食和生活保持清爽与单纯，并且放松精神、增减一些健康嗜好，甚至和朋友、家人一起做做运动。否则，生命的烛光很快就会在全心投入工作中消耗殆尽。 <br /><b>建议</b> <br />多关心周围的人，对他们的需求要敏感一点。不要忽略掉精神上的自我，控制好自己的负面情绪，不要任由它和你选择困难道路的天性相抗衡。可以做有限度的让步，但不在最终的目标上妥协。 <br /><b>名 人 <br /></b>克拉拉舒曼(Clara Schumann)德国钢琴家与作曲家，音乐家舒曼之妻。作品有管弦乐曲、室内乐、歌曲以及许多钢琴独奏的风格小品。 <br /><br />奥地利音乐家荀白克(Arnold Schonberg)，无调性音乐作曲家、12音位系统的发明者，也是大提琴家、画家音乐理论家。 <br /><br />美国电影、舞台与电视女演员考白尔(Claudette Colbert)，早斯曾扮演荡妇的角色，以饰演《克丽奥佩脱拉》的主角闻名。<br /><br />贝拉卡罗利(Bela Karolyi)罗马尼亚裔美籍体操教练，也是体操名可曼尼斯(Nadia Comeneci)的教练。 <br /><br />英裔美籍爵士乐评论家费瑟(Leonard Feather)，也是音乐制作人、经纪人、钢琴家、作词者、专栏作家、电台DJ与作家，著有《爵士乐百科全书》。<br /><br />英国短篇小说民儿童作家达尔(Roald Dahl)，著有《查理和巧克力工厂》。 <br /><br /><b>塔罗牌</b> <br /><br />在仪塔罗牌中最容易被误解的是第13张牌，也就是［死神］。我们极少依字画意思云解读它。它的积极意义是抛开过去，超越限制并持续成长。所以，这张牌是希望人们避免咀丧、悲观或忧愁。 <br /><b>静思语</b> <br /><br />跑步是有韵律的飞翔，伴随着双足在大地上踩出节奏。 <br /><br /><b>优点</b> <br />热情、奉献、不屈不挠。 <br /><br /><b>缺点</b> <br />离经叛道、顽固无情、迟钝。<br /><br />]]></description>
		<pubDate>Sun, 22 Nov 2009 13:53:37 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55758</guid>
	</item>
	<item>
		<title>点滴</title>
		<link>http://blog.verycd.com/ari/showentry=55703</link>
		<category>私——生活记录</category>
		<description><![CDATA[一言难尽，好像就是说目前这个状况的。<br />没时间和心情来诉说什么了。<br />忽然走到了悬崖边。]]></description>
		<pubDate>Sat, 10 Oct 2009 19:54:32 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55703</guid>
	</item>
	<item>
		<title>很久不读书 </title>
		<link>http://blog.verycd.com/ari/showentry=55486</link>
		<category>私——生活记录</category>
		<description><![CDATA[【楷体部分为转帖，借别人的话来说说自己吧。】 <br />很久沒看書，僅有的一點休息時間統統花在美劇和開心網。好像讀書是一種折磨。 <br /><br />怎麼會，我依然記得摩挲書頁的安寧，依然能回憶起讀到興起時努力壓抑激動，緊咬牙齒的感覺。但是，一切都好遠了。 <br /><br />十幾歲的時候，不知不覺讀了很多書，饑不擇食的那種。曾經因為信仰，一字不落地背誦毛主席詩詞和南唐二主詞，聽最討厭的歷史課時默寫在筆記本上。也有一度迷戀傳記，看大部頭的李煜傳，納蘭性德傳，溥儀傳，康熙傳，乾隆傳，張愛玲傳，翻來覆去看各個版本的毛澤東傳，還有無數記不清的誰誰的傳記，有些是繁體豎行排版，看起來很費眼睛。還喜歡過一陣子科幻，整天蹭別人的科幻世界看，倪匡的衛斯理系列七十幾本戰戰兢兢心情抽緊地看了一半之後，完全摸清了老爺子的敘事手法，於是罷看。不得不承認，那的確是消磨時光的好東西。也喜歡過李敖，每天瘋了似的反複讀反複讀仅有的两本书，越讀越心情戰慄，甚至激動得熱淚盈眶，是爲了激昂的青春麼？現在我甚至想不起那本書叫什麽名字，只記得扉頁有李敖年少時和一個喚作小蝶的姑娘的合影。還有孔慶東，石康，王躍文，包括很多的官場小說，那個年紀不懂意識形態卻能看得那麼帶勁。還有亂七八糟架子上的書，只要夠得到。真的饑不擇食。記得很清楚，初中时候上政治课，同桌在底下看还珠格格，我在看厚黑学。现在想想，真可怕，那时候小小的我心里肯定藏了很多格格不入的东西。十幾歲，別的孩子在拼命長身體的時候，那些文字餵養了我，溶化在身體里。 <br /><br />总有些人能把文字写到你的心里。 <br />或者说，总会在看到某些文字的时候会心一笑。 <br />我的时间去了哪里？美剧和音频版的《明朝那些事儿》。 <br />看书好像大都是本科时候的事情。 <br />倪匡的卫斯理前前后后看得七零八落，租书的地方看得到的亚洲之鹰之类的后来在网上却没能找到电子版。 <br />黄易的寻秦记和大唐双龙，真是让人体会到了洛阳纸贵。 <br />每每出了新书，连去租都要预约，还要应承老板在半天之内还来。 <br />当时只是看着舍友们去追，我却很难体会。后来倒也花了不少时间在电脑前面扫了一遍。 <br /><br />王小波、陈染、王跃文他们的精神家园也让我去逛了一大圈， <br />结果没有去过兵马俑和延安之类的。 <br />一直都生活在别处，希望能早点回到未来。]]></description>
		<pubDate>Sat, 27 Jun 2009 18:13:26 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55486</guid>
	</item>
	<item>
		<title><![CDATA[matlab figure最大化方法[转]]]></title>
		<link>http://blog.verycd.com/ari/showentry=55423</link>
		<category>因为专业，所以成功</category>
		<description><![CDATA[方法一（by happy）：<br /><br />h = figure;<br />set(gcf,'outerposition',get(0,'screensize'));<br /><br />方法二（by eight）：<!--fonto:--><span style="font-family:"><!--/fonto-->h = figure;<br />set(gcf,'units','normalized','position',[0,0,1,0.9]);<!--fontc--></span><!--/fontc--><!--fonto:--><span style="font-family:"><!--/fonto-->摘自：<a href="http://www.chinavib.com/forum/thread-37553-1-1.html" target="_blank">http://www.chinavib.com/forum/thread-37553-1-1.html</a><br /><br />Ari摘自： <a href="http://hi.baidu.com/friendchj/blog/item/9bd50ef328361ac30b46e085.html" target="_blank">http://hi.baidu.com/friendchj/blog/item/9b...c30b46e085.html</a><!--fontc--></span><!--/fontc-->]]></description>
		<pubDate>Thu, 28 May 2009 16:47:38 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55423</guid>
	</item>
	<item>
		<title>vc工具集</title>
		<link>http://blog.verycd.com/ari/showentry=55392</link>
		<category>因为专业，所以成功</category>
		<description><![CDATA[Project   Line   Counter   <br />  <a href="http://www.wndtabs.com/" target="_blank">http://www.wndtabs.com/</a>   <br />    <br />  看名字就知道是做什么的啦<br />  <br />Workspace   Whiz   <br />  <a href="http://www.workspacewhiz.com/" target="_blank">http://www.workspacewhiz.com/</a>   <br />    <br />  give   you   more   control   with   VC   &   VS.net<br />Visual   Assist   <br />  <a href="http://www.wholetomato.com/" target="_blank">http://www.wholetomato.com/</a>   <br />    <br />  this   is   very   high   recommanded!!!   <br />  Everybody   should   have   one.<br />  <br />  SmartHelp   <br />  <a href="http://fly.cc.fer.hr/~gmit/smarthelp.htm" target="_blank">http://fly.cc.fer.hr/~gmit/smarthelp.htm</a>   <br />    <br />  looks   not   very   good,   but   source   code   is   available.   <br />    <br />  BTW,   WndTabs'   source   code   is   available,   too.<br />  <br />  CommentWizard   <br />  <a href="http://www.tenasoft.com/" target="_blank">http://www.tenasoft.com/</a>   <br />    <br />  and   you   will   be   satisfied   with   CommentWizard's   professional   comment!<br />  <br />  哦，以前关于图形我都用这个PhotoImpact   <br />    <br />  其他辅助工具很少用，除了一个免费软件，人人都会写的   <br />    <br />  就是看一个工程一共有多少行源码的（极力推荐）<br /> 如果Visual assist 不好用,那就试试CodeRush,CodeRush挺好的 <br />  <br />processview   <br />  depends   <br />  spy++   <br />  softice   <br />  windiff   <br />  error   lookup   <br />  socspy32   用来看socket的调用   <br /><br />Depends,查看一个模式库的依赖关系，同时看看import和export函数的哪些.   <br />  特别适合当一个程序因缺少库不运行时，查看到底少了什么库.   <br />    <br />  com   explorer,要看系统的com注册.或者注册/卸载一个com.   <br />    <br />  Spy++,不用多说了@_@.   <br />    <br />  W32Dasm，加解密时用,VC作为hex编辑的辅助工具.   <br />    <br />  还有...想起来再说吧@_@<br /><br />DevPartner   Studio,包含了以大套工具，包括了上面的ｂｏｕｎｄｓｃｈｅｃｋｅｒ<br /><br />1.   Visual   Assist   确实太好了，所以不得不重复楼上的   <br />  2.   Rational   Purify，运行时错误调试，比BoundsChecker稍好   <br />  3.   Rational   Quantify,   Profiler软件，可用于检测运行速度的瓶颈   <br />  4.   Parasoft   C++   Test,   可通过静态和动态测试分析你的代码中潜在的错误，非常酷。   <br />  5.   Doxygen，可帮助你实现文档和代码的一体化，免费软件，强力推荐。   <br />  还有一些小工具和宏，可能不一定这么通用了。<br /><br />我使用过DDK，Driver   Studio（开发驱动的） <br /><br />我推荐Visual   Assist     <br />  这是我最常用的插件   <br />  <br />  <br />我还用过很多制作安装盘的软件，不包括installshield。我用过easysetup，setupfactory。都是制作安装盘的不错的软件。不过免费的只是demo版。我还用过制作帮助文件的软件，visualhelp是一个不错的制作帮助文件的软件。<br /><br /><br />主要使用的是BoundsChecker：查内存及资源泄露，不过有时误报   <br /><br /><br />]]></description>
		<pubDate>Wed, 13 May 2009 19:35:17 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55392</guid>
	</item>
	<item>
		<title><![CDATA[[杂乱]tips]]></title>
		<link>http://blog.verycd.com/ari/showentry=55391</link>
		<category>因为专业，所以成功</category>
		<description><![CDATA[vc中载入flash资源<br /><br />1.工程区的 resource树中，鼠标右键-&gt;import,<br />2.选择 *.swf文件；<br /><br />3.Resource type 里输入 "SWF"，包括双引号；<br /><br />4.swf被以二进制方式导入资源中；<br /><br />5. CMyDlg::OnInit() 里加入如下代码：<br /><br />CString Type="swf";<br />HRSRC res=FindResource (NULL,MAKEINTRESOURCE(IDR_SWF1),Type);<br />HGLOBAL gl=LoadResource (NULL,res); <br />//返回指向资源内存的地址的指针<br />LPVOID lp=LockResource(gl);<br />//保存的临时文件名<br />CString filename="search.swf";<br /><br />HANDLE fp= CreateFile(filename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);<br />DWORD a;<br />//sizeofResource 得到资源文件的大小<br />if (!WriteFile (fp,lp,SizeofResource (NULL,res),&a,NULL))<br />return 1;<br />//关闭句柄<br />CloseHandle (fp);<br />//释放内存<br />FreeResource (gl); <br /><br />//查找flash文件并加载<br />TCHAR strCurDrt[500];<br />int nLen = ::GetCurrentDirectory(500,strCurDrt);<br />if( strCurDrt[nLen]!='&#092;&#092;' )<br />{<br />strCurDrt[nLen++] = '&#092;&#092;';<br />strCurDrt[nLen] = '&#092;0';<br />}<br /><br />CString strFileName = strCurDrt;<br />strFileName += "search.swf";<br />m_MyFlash.LoadMovie(0, strFileName);<br />m_MyFlash.Stop();<br /><br />问：<br />我要在VC下下断点调试,但是程序Main需要输入两个参数才能运行,怎样设置才能单步调试啊? 如:我必须在cmd窗口中键入 test.exe aa.bmp 才能运行,怎么单步调试,设置两个路径参数?<br />答：<br />在VC里有输入main参数的选项。。 <br />Alt+F7项目设置-》Debug标签-》Program arguments<br /><br /><br />fatal error LNK1104: cannot open file "mfc42u.lib"错误<br />问题是默认的VC缺少对Unicode的支持。要使用Unicode编译：解决方案很简单，从VC的安装盘中拷贝文件“MFC42U.LIB”、“MFC42UD.LIB”、“MFCS42U.LIB”、“MFCS42UD.LIB”几个对Unicode支持的代码“VC的安装目录/VC98/MFC/Lib”下即可。<br /><br /><br />介绍你看 <br />《操作系统概念》——操作系统的圣经 <br />《linux内核解析与应用》——好像是叫这个名字，书很薄，但对理解linux，操作系统概念很有益处。 <br />《internal windows》——深入解析windows，windows程序员必看。 <br />如果对内核感兴趣，推荐看这本书《操作系统：设计与实现》(第三版)，绝对的经典之作！<br />《linux内核完全剖析》<br /><br /><br />学习数据库最值得看那几本书<br />sql编程实用大全精华版，这本书比较好，一个知识点就有一个实例，可以在网上找得到<br />我觉得《SQL   入门经典》不错，清华大学出版社的，浅显易懂，强烈推荐。<br />oracle10gDBA宝典 <br />电子工业出版社的，我认为是很好的一本参考书！2006年12月分出的<br />&lt; &lt;sql必知必会&gt;&gt;挺不错<br />《SQL Cookbook》，CSDN上有英文版的CHM下载，你可以下了看一下，感觉还是不错的。<br />《数据库原理》《数据库技术应用实践教程》《sql server2005中文版精粹》<br />1、买一本有关数据库的基础入门书，建议直接学习sql server 2000，不要求版本太高，实用就成。推荐赵松涛的《sql server 2000 系统管理与应用开发》有点厚，不过很详细，也适合操作。<br />2、在自己的机器上安装SQL SERVER 2000企业版软件  搭建实习环境，或者用VMware安装虚拟再安装SQL SERVER2000运行环境。<br />一本很好的书《ADO编程技巧》，还有下载一些管理系统的源代码研究，主要还是自己多编一编<br /><br />]]></description>
		<pubDate>Wed, 13 May 2009 19:24:38 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=55391</guid>
	</item>
	<item>
		<title>油画、浮雕效果实现</title>
		<link>http://blog.verycd.com/ari/showentry=54999</link>
		<category>因为专业，所以成功</category>
		<description><![CDATA[转自csdn<br /><br /><!--quoteo--><div class='quotetop'>引用</div><div class='quotemain'><!--quotec-->photoshop的油画效果是怎么实现的楼主linsk（静默虚空）2005-06-10 10:20:44 在 专题开发/技术/项目 / 图形图像/机器视觉 提问谁能介绍相关的算法或者提供一些代码，谢谢！ <br />问题点数：0、回复次数：7<br />Top<br /> <br /><br />1 楼konriuen（伊天仇）回复于 2005-06-10 14:53:55 得分 0 方块中出现频率最高的浓度值带入中心画素<br />Top<br /><br />2 楼DarthVader（mm咋就那么白呢 唉 还是当黑炭吧）回复于 2005-06-16 10:21:05 得分 0 CSDN要是能贴图就好了<br />Top<br /><br />3 楼WallesCai（女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼）回复于 2005-06-27 00:02:32 得分 0 楼上konriuen(伊天仇)做出来的是马赛克效果,而不是油画效果<br />Top<br /><br />4 楼konriuen（伊天仇）回复于 2005-06-27 21:41:53 得分 0 马赛克效果是将领域中浓度平均，然后用此平均值带入领域全部画素<br />Top<br /><br />5 楼dayn9（无知者无罪）回复于 2005-07-01 10:23:15 得分 0 全部？感觉还是马赛克<br />Top<br /><br />6 楼WallesCai（女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼）回复于 2005-07-04 04:04:12 得分 0 马赛克效果和油画效果的差别并非是在如何取颜色值的问题，而是在于马赛克效果的“画笔”是方的。而油画效果的“画笔”是不规则的。   <br />  我感觉使用色彩分层的算法会比较接近，就是按照一定的范围取各点的色值，颜色相近的就用一种颜色来代替，颜色相近并且距离近的就直接连接（忽略中间的不同色彩，用这个替代色来覆盖）   <br />  这样做出来的效果会好点。（估计运算量会比较大）<br />Top<br /> <!--QuoteEnd--></div><!--QuoteEEnd--><br /><br /><!--quoteo--><div class='quotetop'>引用</div><div class='quotemain'><!--quotec-->浮雕效果如何实现楼主pango99（pango）2003-07-21 00:56:18 在 VC/MFC / 图形处理/算法 提问怎么实现图象的浮雕效果? <br />问题点数：0、回复次数：11<br />Top<br /> <br /><br />1 楼JFLing（）回复于 2003-07-23 14:20:32 得分 0 求每一像素点处的梯度<br />Top<br /><br />2 楼lygfqy（风清扬）回复于 2003-07-23 14:51:34 得分 0 up<br />Top<br /><br />3 楼devzhao（wincer）回复于 2003-07-23 15:44:28 得分 0 up<br />Top<br /><br />4 楼Greaitm（夜草）回复于 2003-07-24 09:03:50 得分 0 给出一个例子，以下就是135度的浮雕效果：   <br />  |1   0   0   |   <br />  |0   0   0   |   +   128   <br />  |0   0   -1|<br />Top<br /><br />5 楼shine333（enihs）回复于 2003-07-24 09:25:46 得分 0 学习<br />Top<br /><br />6 楼yangpeng_sun（baw）回复于 2003-07-24 15:29:56 得分 0 http://<br />Top<br /><br />7 楼yangpeng_sun（baw）回复于 2003-07-24 15:31:44 得分 0 希望多多关注:   <br />  www.image2003.com   <br />  <br />Top<br /><br />8 楼pango99（pango）回复于 2003-07-24 22:06:49 得分 0 To   Greaitm(夜草):   <br />  是不是该这样的呀?   <br />    <br />  |-10   0|   <br />  |0   1   0|   +   128   <br />  |0   0   0|   <br />  <br />Top<br /><br />9 楼Greaitm（夜草）回复于 2003-08-14 13:59:40 得分 0 这样也可以   这个不是死的<br />Top<br /><br />10 楼dmn（道明牛）回复于 2003-08-15 13:55:57 得分 0 浮雕效果对应到数字图像处理类似于边缘检测，它是通过对图像的每一个象素进行运算得到的，形如：   <br />  -5   0   0   <br />    0   1   0   <br />    0   0   0   <br />  的可以叫做模板。通过定义不同模板能够实现噪声、锐化、模糊等效果。   <br />  找点数字图像处理的书来看，一点找得到答案。   8-)<br />Top<br /><br />11 楼rabithao（兔巴哥）回复于 2003-08-15 14:08:47 得分 0 灰度图：   <br />  for(int   i=height;   i&gt;=1;   i--)   <br />  {   <br />  for(int   j=width;   j&gt;=1;   j--)   <br />  {   <br />  buf   =   *(lpDIBBits   +   lWidthBytes*(height-i)   +   j)   -   *(lpDIBBits   +   lWidthBytes*(height-i+1)   +   (j-1))   +   128;   <br />  if(buf&gt;255)   <br />  {   <br />  buf   =   255;   <br />  }   <br />  if(buf&lt;0)   <br />  {   <br />  buf   =   0;   <br />  }   <br />  else   <br />  {   <br />  *(data   +   lWidthBytes*(height-i)   +   j)   =   (BYTE)buf;   <br />  }   <br />  }   <br />  }<br />Top<br /><!--QuoteEnd--></div><!--QuoteEEnd--><br />www.image2003.com/know.asp?sortid=9&knowid=46&mode=sosoo&page=1&keyword=浮雕&area=9]]></description>
		<pubDate>Sun, 04 Jan 2009 15:35:56 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=54999</guid>
	</item>
	<item>
		<title>Motion Analysis and Object Tracking Reference</title>
		<link>http://blog.verycd.com/ari/showentry=54991</link>
		<category>因为专业，所以成功</category>
		<description><![CDATA[<!--quoteo--><div class='quotetop'>引用</div><div class='quotemain'><!--quotec--><br /><b>Estimators</b><br /><br /><b>CvKalman</b><br />Kalman filter state<br /><br />typedef struct CvKalman{    int MP;                     /* number of measurement vector dimensions 测量向量维数*/    int DP;                     /* number of state vector dimensions 状态向量维数*/    int CP;                     /* number of control vector dimensions 控制向量维数*/    /* backward compatibility fields */#if 1    float* PosterState;         /* =state_pre-&gt;data.fl 前驱*/    float* PriorState;          /* =state_post-&gt;data.fl 后继*/    float* DynamMatr;           /* =transition_matrix-&gt;data.fl 转移矩阵*/    float* MeasurementMatr;     /* =measurement_matrix-&gt;data.fl 测量矩阵*/    float* MNCovariance;        /* =measurement_noise_cov-&gt;data.fl 测量噪声协方差*/    float* PNCovariance;        /* =process_noise_cov-&gt;data.fl 系统噪声协方差*/    float* KalmGainMatr;        /* =gain-&gt;data.fl 卡尔曼增益*/    float* PriorErrorCovariance;/* =error_cov_pre-&gt;data.fl */    float* PosterErrorCovariance;/* =error_cov_post-&gt;data.fl */    float* Temp1;               /* temp1-&gt;data.fl */    float* Temp2;               /* temp2-&gt;data.fl */#endif    CvMat* state_pre;           /* predicted state (x'(k)):                                    x(k)=A*x(k-1)+B*u(k) 先验状态*/    CvMat* state_post;          /* corrected state (x(k)):                                    x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) 后验状态*/    CvMat* transition_matrix;   /* state transition matrix (A) */    CvMat* control_matrix;      /* control matrix (<img src="http://bbs.verycd.com/style_emoticons/default/cool.gif" style="vertical-align:middle" emoid="B)" border="0" alt="cool.gif" />                                   (it is not used if there is no control)*/    CvMat* measurement_matrix;  /* measurement matrix (H) */    CvMat* process_noise_cov;   /* process noise covariance matrix (Q) */    CvMat* measurement_noise_cov; /* measurement noise covariance matrix ® */    CvMat* error_cov_pre;       /* priori error estimate covariance matrix (P'(k)):                                    P'(k)=A*P(k-1)*At + Q)*/    CvMat* gain;                /* Kalman gain matrix (K(k)):                                    K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)*/    CvMat* error_cov_post;      /* posteriori error estimate covariance matrix (P(k)):                                    P(k)=(I-K(k)*H)*P'(k) */    CvMat* temp1;               /* temporary matrices */    CvMat* temp2;    CvMat* temp3;    CvMat* temp4;    CvMat* temp5;}CvKalman;The structure <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvKalman" target="_blank">CvKalman</a> is used to keep Kalman filter state. It is created by <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvCreateKalman" target="_blank">cvCreateKalman</a> function, updated by <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvKalmanPredict" target="_blank">cvKalmanPredict</a> and <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvKalmanCorrect" target="_blank">cvKalmanCorrect</a> functions and released by <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvReleaseKalman" target="_blank">cvReleaseKalman</a> functions. Normally, the structure is used for standard Kalman filter (notation and formulae are borrowed from excellent Kalman tutorial <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#kalman_paper" target="_blank">[Welch95]</a>):<br /><br />xk=A•xk-1+B•uk+wkzk=H•xk+vk,where:<br /><br />xk (xk-1) - state of the system at the moment k (k-1)zk - measurement of the system state at the moment kuk - external control applied at the moment kwk and vk are normally-distributed process and measurement noise, respectively:p(w) ~ N(0,Q)p(v) ~ N(0,R),that is,Q - process noise covariance matrix, constant or variable,R - measurement noise covariance matrix, constant or variableIn case of standard Kalman filter, all the matrices: A, B, H, Q and R are initialized once after <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvKalman" target="_blank">CvKalman</a> structure is allocated via <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvCreateKalman" target="_blank">cvCreateKalman</a>. However, the same structure and the same functions may be used to simulate extended Kalman filter by linearizing extended Kalman filter equation in the current system state neighborhood, in this case A, B, H (and, probably, Q and R) should be updated on every step. <br /><br /><b>[Welch95] Greg Welch, Gary Bishop. An Introduction To the Kalman Filter. Technical Report TR95-041, University of North Carolina at Chapel Hill, 1995. </b>Online version is available at [url="http://www.cs.unc.edu/~welch/kalman/kalman_filter/kalman.html"]http://www.cs.unc.edu/~welch/kalman/kalman_filter/kalman.html <br /><br /><br /><b>CreateKalman</b><br />Allocates Kalman filter structure<br /><br />CvKalman* cvCreateKalman( int dynamParams, int measureParams, int controParams=0 );<br /><br />dynamParams dimensionality of the state vector measureParams dimensionality of the measurement vector controlParams dimensionality of the control vector <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvCreateKalman" target="_blank">cvCreateKalman</a> allocates <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvKalman" target="_blank">CvKalman</a> and all its matrices and initializes them somehow. <br /><br /><br /><b>ReleaseKalman</b><br />Deallocates Kalman filter structure<br /><br />void cvReleaseKalman(CvKalman** kalman );<br /><br />kalman double pointer to the Kalman filter structure. <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvReleaseKalman" target="_blank">cvReleaseKalman</a> releases the structure <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvKalman" target="_blank">CvKalman</a> and all underlying matrices. <br /><br /><br /><b>KalmanPredict</b><br />Estimates subsequent model state<br /><br />const CvMat* cvKalmanPredict( CvKalman* kalman, const CvMat* control=NULL );#define cvKalmanUpdateByTime cvKalmanPredict<br /><br />kalman Kalman filter state. control Control vector (uk), should be NULL iff there is no external control (<i>controlParams</i>=0). <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvKalmanPredict" target="_blank">cvKalmanPredict</a> estimates the subsequent stochastic model state by its current state and stores it at <i>kalman-&gt;state_pre</i>:<br /><br />    x'k=A•xk+B•uk    P'k=A•Pk-1*AT + Q,wherex'k is predicted state (kalman-&gt;state_pre),xk-1 is corrected state on the previous step (kalman-&gt;state_post)                (should be initialized somehow in the beginning, zero vector by default),uk is external control (<i>control</i> parameter),P'k is priori error covariance matrix (kalman-&gt;error_cov_pre)Pk-1 is posteriori error covariance matrix on the previous step (kalman-&gt;error_cov_post)                (should be initialized somehow in the beginning, identity matrix by default),The function returns the estimated state. <br /><br /><br /><b>KalmanCorrect</b><br />Adjusts model state<br /><br />void cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement=NULL );#define cvKalmanUpdateByMeasurement cvKalmanCorrect<br /><br />kalman Pointer to the structure to be updated. measurement Pointer to the structure CvMat containing the measurement vector. <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvKalmanCorrect" target="_blank">cvKalmanCorrect</a> adjusts stochastic model state on the basis of the given measurement of the model state:<br /><br />Kk=P'k•HT•(H•P'k•HT+R)-1xk=x'k+Kk•(zk-H•x'k)Pk=(I-Kk•H)•P'kwherezk - given measurement (<i>mesurement</i> parameter)Kk - Kalman "gain" matrix.The function stores adjusted state at <i>kalman-&gt;state_post</i> and returns it on output. <br /><br /><br /><b>Example. Using Kalman filter to track a rotating point</b><br />#include "cv.h"#include "highgui.h"#include &lt;math.h&gt;int main(int argc, char** argv){    /* A matrix data */    const float A[] = { 1, 1, 0, 1 };    IplImage* img = cvCreateImage( cvSize(500,500), 8, 3 );    CvKalman* kalman = cvCreateKalman( 2, 1, 0 );    /* state is (phi, delta_phi) - angle and angle increment */    CvMat* state = cvCreateMat( 2, 1, CV_32FC1 );    CvMat* process_noise = cvCreateMat( 2, 1, CV_32FC1 );    /* only phi (angle) is measured */    CvMat* measurement = cvCreateMat( 1, 1, CV_32FC1 );    CvRandState rng;    int code = -1;    cvRandInit( &rng, 0, 1, -1, CV_RAND_UNI );    cvZero( measurement );    cvNamedWindow( "Kalman", 1 );    for(;;)    {        cvRandSetRange( &rng, 0, 0.1, 0 );        rng.disttype = CV_RAND_NORMAL;        cvRand( &rng, state );        memcpy( kalman-&gt;transition_matrix-&gt;data.fl, A, sizeof(A));        cvSetIdentity( kalman-&gt;measurement_matrix, cvRealScalar(1) );        cvSetIdentity( kalman-&gt;process_noise_cov, cvRealScalar(1e-5) );        cvSetIdentity( kalman-&gt;measurement_noise_cov, cvRealScalar(1e-1) );        cvSetIdentity( kalman-&gt;error_cov_post, cvRealScalar(1));        /* choose random initial state */        cvRand( &rng, kalman-&gt;state_post );        rng.disttype = CV_RAND_NORMAL;        for(;;)        {            #define calc_point(angle)                                      &#092;                cvPoint( cvRound(img-&gt;width/2 + img-&gt;width/3*cos(angle)),  &#092;                         cvRound(img-&gt;height/2 - img-&gt;width/3*sin(angle)))            float state_angle = state-&gt;data.fl[0];            CvPoint state_pt = calc_point(state_angle);            /* predict point position */            const CvMat* prediction = cvKalmanPredict( kalman, 0 );            float predict_angle = prediction-&gt;data.fl[0];            CvPoint predict_pt = calc_point(predict_angle);            float measurement_angle;            CvPoint measurement_pt;            cvRandSetRange( &rng, 0, sqrt(kalman-&gt;measurement_noise_cov-&gt;data.fl[0]), 0 );            cvRand( &rng, measurement );            /* generate measurement */            cvMatMulAdd( kalman-&gt;measurement_matrix, state, measurement, measurement );            measurement_angle = measurement-&gt;data.fl[0];            measurement_pt = calc_point(measurement_angle);            /* plot points */            #define draw_cross( center, color, d )                                 &#092;                cvLine( img, cvPoint( center.x - d, center.y - d ),                &#092;                             cvPoint( center.x + d, center.y + d ), color, 1, 0 ); &#092;                cvLine( img, cvPoint( center.x + d, center.y - d ),                &#092;                             cvPoint( center.x - d, center.y + d ), color, 1, 0 )            cvZero( img );            draw_cross( state_pt, CV_RGB(255,255,255), 3 );            draw_cross( measurement_pt, CV_RGB(255,0,0), 3 );            draw_cross( predict_pt, CV_RGB(0,255,0), 3 );            cvLine( img, state_pt, predict_pt, CV_RGB(255,255,0), 3, 0 );            /* adjust Kalman filter state */            cvKalmanCorrect( kalman, measurement );            cvRandSetRange( &rng, 0, sqrt(kalman-&gt;process_noise_cov-&gt;data.fl[0]), 0 );            cvRand( &rng, process_noise );            cvMatMulAdd( kalman-&gt;transition_matrix, state, process_noise, state );            cvShowImage( "Kalman", img );            code = cvWaitKey( 100 );            if( code &gt; 0 ) /* break current simulation by pressing a key */                break;        }        if( code == 27 ) /* exit by ESCAPE */            break;    }    return 0;}<br /><b>CvConDensation</b><br />ConDenstation state<br /><br />    typedef struct CvConDensation    {        int MP;     //Dimension of measurement vector        int DP;     // Dimension of state vector        float* DynamMatr;       // Matrix of the linear Dynamics system        float* State;           // Vector of State        int SamplesNum;         // Number of the Samples        float** flSamples;      // array of the Sample Vectors        float** flNewSamples;   // temporary array of the Sample Vectors        float* flConfidence;    // Confidence for each Sample        float* flCumulative;    // Cumulative confidence        float* Temp;            // Temporary vector        float* RandomSample;    // RandomVector to update sample set        CvRandState* RandS;     // Array of structures to generate random vectors    } CvConDensation;The structure <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvConDensation" target="_blank">CvConDensation</a> stores CONditional DENSity propagATION tracker state. The information about the algorithm can be found at <a href="http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/ISARD1/condensation.html" target="_blank">http://www.dai.ed.ac.uk/CVonline/LOCAL_COP...ndensation.html</a> <br /><br /><br /><b>CreateConDensation</b><br />Allocates ConDensation filter structure<br /><br />CvConDensation* cvCreateConDensation( int DynamParams, int MeasureParams, int SamplesNum );<br /><br />DynamParams Dimension of the state vector. MeasureParams Dimension of the measurement vector. SamplesNum Number of samples. <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvCreateConDensation" target="_blank">cvCreateConDensation</a> creates <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvConDensation" target="_blank">CvConDensation</a> structure and returns pointer to the structure. <br /><br /><br /><b>ReleaseConDensation</b><br />Deallocates ConDensation filter structure<br /><br />void cvReleaseConDensation( CvConDensation** ConDens );<br /><br />ConDens Pointer to the pointer to the structure to be released. <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvReleaseConDensation" target="_blank">cvReleaseConDensation</a> releases the structure <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvConDensation" target="_blank">CvConDensation</a> (see <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvConDensation" target="_blank">cvConDensation</a>) and frees all memory previously allocated for the structure. <br /><br /><br /><b>ConDensInitSampleSet</b><br />Initializes sample set for condensation algorithm<br /><br />void cvConDensInitSampleSet( CvConDensation* ConDens, CvMat* lowerBound, CvMat* upperBound );<br /><br />ConDens Pointer to a structure to be initialized. lowerBound Vector of the lower boundary for each dimension. upperBound Vector of the upper boundary for each dimension. <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvConDensInitSampleSet" target="_blank">cvConDensInitSampleSet</a> fills the samples arrays in the structure <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_CvConDensation" target="_blank">CvConDensation</a> with values within specified ranges. <br /><br /><br /><b>ConDensUpdateByTime</b><br />Estimates subsequent model state<br /><br />void cvConDensUpdateByTime( CvConDensation* ConDens );<br /><br />ConDens Pointer to the structure to be updated. <br /><br />The function <a href="http://www.itl.k.u-tokyo.ac.jp/~nakamura/opencv/opencvref_motionanalysis.html#decl_cvConDensUpdateByTime" target="_blank">cvConDensUpdateByTime</a> estimates the subsequent stochastic model state from its current state. <br /><br /><!--QuoteEnd--></div><!--QuoteEEnd--><br /><br />今天看了一下opencv的这一节。然后发现中文网站已经有相关条目了。]]></description>
		<pubDate>Thu, 01 Jan 2009 16:00:43 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=54991</guid>
	</item>
	<item>
		<title>Learning OpenCV：exercise4-2</title>
		<link>http://blog.verycd.com/ari/showentry=54934</link>
		<category>因为专业，所以成功</category>
		<description><![CDATA[始终不能在窗口上显示该像素的颜色值，<br />无奈的很。<br /><!--c1--><div class='codetop'>代码</div><div class='codemain'><!--ec1-->#include &#34;cv.h&#34;<br />#include &#34;highgui.h&#34;<br />#include &#34;stdio.h&#34;<br /><br />// Define our callback which we will install for<br />// mouse events.<br />//<br />void my_mouse_callback&#40;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int event, int x, int y, int flags, void* param <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#41;;<br />bool showingRGB=false;<br />CvPoint pt;<br />char* mytext;<br /><br />void showRGB&#40;IplImage* img, CvPoint pt&#41;;<br /><br /> <br /><br />int main&#40; int argc, char** argv &#41; {<br /> <br /><br /> IplImage *frame=NULL;<br /> cvNamedWindow&#40;&#34;Video&#34;,1&#41;;<br />// cvNamedWindow&#40;&#34;Video1&#34;,1&#41;;<br /><br /> frame=cvLoadImage&#40;&#34;D&#58;&#092;&#092;Program Files&#092;&#092;OpenCV&#092;&#092;_make&#092;&#092;test&#092;&#092;Debug&#092;&#092;a.jpg&#34;&#41;;<br /><br /> IplImage* temp = NULL;//cvCloneImage&#40; frame&#41;; <br /><br /> cvSetMouseCallback&#40; <br />&nbsp;&nbsp;&#34;Video&#34;, <br />&nbsp;&nbsp;my_mouse_callback, <br />&nbsp;&nbsp;&#40;void*&#41; frame <br />&nbsp;&nbsp;&#41;;<br /><br /><br /> while&#40; 1 &#41; {<br />//&nbsp;&nbsp;cvCopyImage&#40; frame, temp &#41;;<br />&nbsp;&nbsp;if&#40;showingRGB&#41; showRGB&#40;frame,pt&#41;;<br />&nbsp;&nbsp;cvShowImage&#40; &#34;Video&#34;, frame &#41;;<br />// cvShowImage&#40; &#34;Video1&#34;, frame &#41;;<br />&nbsp;&nbsp;if&#40; cvWaitKey&#40; 15 &#41;==27 &#41; break;<br /> }<br /> <br /><br /> <br /> cvReleaseImage&#40;&frame&#41;;<br /> cvReleaseImage&#40;&temp&#41;;<br /><br /> cvDestroyAllWindows&#40;&#41;;<br /> return 0;<br />}<br /><br />void my_mouse_callback&#40;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int event, int x, int y, int flags, void* param &#41;<br />{ <br /> IplImage* img = &#40;IplImage*&#41; param;<br /><br /> switch&#40; event &#41; {<br /> case CV_EVENT_LBUTTONDOWN&#58; {<br />&nbsp;&nbsp; showingRGB=false;<br />&nbsp;&nbsp;pt=cvPoint&#40;x,y&#41;;<br /> // pt.x=x;<br /> // pt.y=y; <br />&nbsp;&nbsp;showingRGB=true;<br />&nbsp;&nbsp;cvWaitKey&#40;50&#41;;<br /> <br /> break; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /> case CV_EVENT_LBUTTONUP&#58;{<br />&nbsp;&nbsp;showingRGB=false;<br />&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /> case CV_EVENT_MOUSEMOVE&#58; {<br />&nbsp;&nbsp;showingRGB = false;<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;break; <br /> }<br /><br />}<br />void showRGB&#40;IplImage* img, CvPoint pt&#41;<br />{ <br /><br /> //用来显示文字,初始化字体 <br /> CvFont font=cvFont&#40;1&#41;; <br />// cvInitFont&#40; &font, CV_FONT_HERSHEY_COMPLEX,1, 1&#41;;<br /> <br /><br />&nbsp;&nbsp;CvScalar s;<br />&nbsp;&nbsp;s=cvGet2D&#40;img,pt.x,pt.y&#41;; // get the &#40;x,y&#41; pixel value<br />printf&#40;&#34;%d &#34;,int&#40;s.val&#91;0&#93;&#41;&#41;;<br />// unsigned char R = CV_IMAGE_ELEM&#40;img, unsigned char, pt.x, pt.y*3 + 2&#41;;<br />//itoa&#40;int&#40;s.val&#91;0&#93;&#41;,mytext,10&#41;;<br />//cvPutText&#40;img,mytext,cvPoint&#40;pt.x,pt.y&#41;,&font,cvScalar&#40;0&#41;&#41;; <br />&nbsp;&nbsp;itoa&#40;pt.x,mytext,10&#41;;<br />cvPutText&#40;img,mytext,pt,&font,cvScalar&#40;0&#41;&#41;;<br />itoa&#40;pt.y,mytext,10&#41;;<br /> cvPutText&#40;img,mytext,cvPoint&#40;pt.x+30,pt.y&#41;,&font,cvScalar&#40;0&#41;&#41;;<br />}<!--c2--></div><!--ec2--><br /><br />]]></description>
		<pubDate>Sun, 21 Dec 2008 16:47:13 +0800</pubDate>
		<guid>http://blog.verycd.com/ari/showentry=54934</guid>
	</item>
</channel>
</rss>