Hopes

Start Here..

 

《汉密尔顿 国家利益》

                                     
【影片原名】Hamilton - I nationens intresse
 【中文译名】国家利益
 【出品公司】Pampas Produktion
 【出品年代】2012 年
 【上映日期】2012年1月13日
 瑞典
 【影片级别】Norway:15 | Sweden:15
 【IMDB链接】http://www.imdb.com/title/tt1856014/
 【IMDB评分】6.6/10 (679 votes)
 【国  家】瑞典
 【类  别】动作/剧情/惊悚
 【导  演】凯瑟琳·温德菲尔德 Kathrine Windfeld
 【主  演】米克尔·佩斯勃兰特 Mikael Persbrandt  .Carl Hamilton
 佩尼拉·奥盖斯特 Pernilla August  .Statsministern
 古斯塔夫·汉马斯顿 Gustav Hammarsten
 Peter Andersson
 大卫·丹席克 David Dencik  .Vice Statsminister
 Sandra Andreis  .Anna Sjöström
 Liv Mjönäs
 Fanny Risberg
 Lennart Hjulström  .DG
 Tommy Sporrong  .Säpo
 Dan Ekborg
 Jason Oettle  .Sectragon 1
 
【对白语言】瑞典语
 【字幕语言】中文字幕
 
【内容简介】
 
  本片是瑞典2012年大制作,被称为瑞典版007。由上届奥斯卡最佳外语片《更好的世界》男主角Mikael Persbrandt主演,片中他饰演一名瑞典情报官员卡尔.汉密尔顿,打入一个偷了瑞典先进的GPS制导导弹的国际犯罪团伙,这伙亡命雇佣军绑架了一名瑞典武器技术专家,并收到了一个不明身份客户组织的命令,准备发动一次致命的攻击。虽然汉密尔顿暴露了身份并逃脱了团伙的追杀,但导弹和专家都已经失去了踪迹。不久,被盗的武器之一出现在索马里的恐怖袭击事件中,一名和平政治家被杀害。在瑞典首相承诺的情况下,ZF同意聘请一家私人保安公司完成救援任务,汉密尔顿作为瑞典ZF观察员随行。显然,这是一项极度危险的任务,汉密尔顿要从索马里的荒芜沙漠,一路追踪到阿曼的街头巷战,以及斯德哥尔摩群岛的丛林+水艇战,在国家利益面前(nicktime),他必须经历陆、海、空三种激战前所未有的挑战!
 

posted @ 2012-05-23 08:35 ** 阅读(248) | 评论 (0)编辑 收藏

Niu Lang and Zhi Nu

VALENTINE'S Day in China, the seventh day of the seventh lunar month, falls on August 19 this year.

That is, on Sunday evening, Niu Lang and Zhi Nu will meet on a bridge of magpies(鹊桥) across the Milky Way(银河). Chinese grannies will remind children that they would not be able to see any magpies on that evening because all the magpies have left to form a bridge in the heavens with their wings.

<Romantic legend>

       The legend has been handed down for nearly 2 millennia. The story has been recorded as far back as the Jin Dynasty (256-420 AD). Poets composed hundreds of verses on the love story and many types of Chinese opera tell the story.

The Chinese people believe that the star Vega(织女星), east of the Milky Way, is Zhi Nu and, at the constellation of Aquila(天鹰座), on the western side of the Milky Way, Niu Lang waits for his wife.

Zhi Nu was said to be the youngest of seven daughters of the Queen of Heaven. With her sisters, she worked hard to weave beautiful clouds in the sky, while Niu Lang was a poor orphan cowherd, driven out of his home by his elder brother and his cruel wife.

      Niu Lang lamented over his lonely and poor life with an old cow, his only friend and companion. The magical cow kindly told him of a way to find a beautiful and nice woman as his life companion.

Under the direction of the cow, Niu Lang went to the riverside on an evening, where the seven fairies slipped out of their heavenly palace to bathe.

      He took one of the beautiful silk dresses the fairies had left on the bank. When the fairies left the water, the youngest couldn't find her clothes and had to see her sisters fly back to heaven without her.

Then Niu Lang came out with the dress and asked the youngest fairy, Zhi Nu, to stay with him.

Several years passed on Earth, which were only a few days in heaven. Niu Lang and Zhi Nu lived happily together and had two children before the Queen of Heaven discovered Zhi Nu's absence.

She was so annoyed she had Zhi Nu brought back to heaven. Seeing his beloved wife flying in the sky, Niu Lang was terrified. He caught sight of the cowhide hanging on a wall. The magical cow had told him before dying of old age: "Keep the cowhide(牛皮) for emergency use."

       Putting the cowhide on, he went after his wife with his two children.

With the help of the cowhide, Niu Lang was able to follow Zhi Nu into heaven. He was about to reach his wife when the Queen showed up and pulled off her hairpin to draw a line between the two. The line became the Silver River in heaven, or the Milky Way.

       Zhi Nu went back to the heavenly workshop, going on weaving the clouds. But she was so sad, and missed her husband across the Silver River so much that the clouds she weaved seemed sad. Finally, the Queen showed a little mercy, allowing the couple to meet once every year on the Silver River.

Well-known poem

       One of the most famous poems about the legend was written by Qin Guan of in the Song Dynasty (960-1279).

Fairy Of The Magpie Bridge

posted @ 2012-05-21 21:10 ** 阅读(539) | 评论 (0)编辑 收藏

我国部分化妆品汞超标6万倍 消费者中毒患肾病

我国部分化妆品汞超标6万倍 消费者中毒患肾病

2012年05月14日01:49重庆商报我要评论(644)
字号:T|T

我国部分化妆品汞超标6万倍 消费者中毒患肾病

 

我国部分化妆品汞超标6万倍 消费者中毒患肾病

 

王女士使用的两套美白化妆品

我国部分化妆品汞超标6万倍 消费者中毒患肾病

 

其中一款化妆品汞超标6万倍 (央视截频图)

化妆品美白成分都有啥用

来源:央视网所属分类:财经

●果酸

有效性:75%

美白产品中只允许使用3%以下低浓度的果酸;中等浓度的果酸用来祛斑;20%以上高浓度的果酸只能在专业人员的指导下用来换肤。

安全性:40%

使用果酸后皮肤会变得对紫外线更加敏感。

●曲酸

有效性:85%

能够有效抑制酪氨酸酶的活性,效果最明显。

安全性:50%

含有一定毒性,因而没有在市场上完全普及开来。

●桑树提取物

有效性:70%

是由法国人开发出来的最新的美白成分。

安全性:70%

作用温和有效,自然美白。

●芦荟

有效性:60%

可以减轻由紫外线刺激而带来的皮肤黑化。

安全性:80%

可保湿、防晒、祛斑、除皱、美白、防衰老、护发。

●熊果苷

有效性:75%

可以有效减少黑色素的形成。

安全性:80%

安全性比较高。

●维生素C

有效性:80%

可将深色的黑色素还原成为浅色的黑色素,并抑制中间体生成黑色素。

安全性:85%

安全性很好,但稳定性很差,会很快地失去活性。

●内皮素拮抗剂

有效性:65%

可以和黑色素细胞膜的受体结合,使内皮素失去作用。

安全性:未知

安全性尚有待验证。

美白祛斑一直是不少爱美女士的追求目标,因此市场上的美白祛斑类的化妆品也就成了热门商品。但是不少追求美白的女士们可能不知道,一些美白祛斑类的化妆品,在让皮肤变得更加白皙的同时,还隐藏着安全隐患,甚至可能对使用者造成严重的伤害。

昨日,央视《每周质量报告》播出一期节目:美白的风险,节目曝光了美白化妆品汞超标数万倍,导致消费者汞中毒引发肾病的案例。

为何出现全身浮肿?

汞中毒致肾病综合征

从去年10月到现在,山西的王女士就一直在为自己莫名其妙生的一场大病担心不已,虽然经过了几个月的治疗,目前王女士的病情已经基本得到了控制,但是和生病之前相比,她的身体还是虚弱了很多。

要想了解王女士这段痛苦的经历,还得从2011年10月说起。当时身体一直比较健康的王女士突然觉得眼睛和脸部出现了浮肿,不久,这样的浮肿就蔓延到了全身。

痛苦万分的王女士先后到当地的多家医院进行了检查,医生给出的诊断结论,让她大吃了一惊:肾病综合征。

为了找到患病原因,也为了得到更好的治疗,王女士随即到北京寻求帮助,到了北京之后,王女士病情加重,情况愈加危急。

虽然在医生的精心治疗之下,王女士脱离了生命危险,但是患病原因却没有找到。在医生指点下,王女士来到了解放军307医院做进一步的检查,这次检查终于找到了致病元凶。

经过检测,王女士的血液中汞的含量达到了36纳克/毫升,尿液中汞的含量超过了54纳克/毫升,都超出了正常标准的十几倍,因此医生确认王女士的肾病综合征是由汞中毒导致的。

什么导致汞中毒?

美白化妆品是真凶

汞,俗称水银,是一种液体金属,汞及其化合物可通过呼吸道、皮肤或消化道等不同途径侵入人体,过量侵入可诱发汞中毒。

是什么原因造成了王女士的汞中毒呢?在对王女士的生活习惯进行分析后,医生将怀疑的重点锁定在了王女士使用的美白化妆品上。被确诊为汞中毒引发的肾病综合征之前,王女士陆续在当地的一家化妆品商店购买了两套美白化妆品,分别标称为“韦医生大清药王”牌和“韦医生古韵”牌美白套装化妆品。

这两种美白化妆品真的会是罪魁祸首吗?为了解开谜团,王女士将这两种化妆品先后送到多家检验机构进行了检测,最终发现检测结果大同小异,这两种美白化妆品中汞的含量都大幅超出了国家标准。

经山西省产品质量监督检验所检测,这款标称为“古韵强力祛印消斑霜”的产品,汞含量为39453毫克/千克,按照国家标准,化妆品中汞含量不得超过1毫克/千克,这款产品的汞含量超标近4万倍;而另外一款标称为“蓉贵妃美白祛斑晚霜”的产品,汞含量为64117毫克/千克,超标6万多倍。

经过医生的分析和法定机构的检测,最终确认导致王女士肾病综合征的原因是汞中毒,而导致王女士汞中毒的原因正是她所使用的美白化妆品。

类似的情况有多少?

化妆品致汞中毒不断增多

无独有偶,和王女士的经历类似,北京的孙女士也是在使用了美白化妆品之后,出现了汞中毒的症状。

医生在分析了孙女士的情况后也怀疑,造成她汞中毒的原因很可能是,她从北京一家名叫雅滋曼的美容院购买的美白化妆品。为了讨一个说法,孙女士多次找到这家美容院协商,但是都没有得到满意的答复。无奈之下孙女士将雅滋曼美容院告上了法庭,法院将孙女士使用的这种美白化妆品送到了检测机构进行了检测,结果发现这种美白化妆品的汞含量达到了66928毫克/千克,超标6万多倍。

孙女士还告诉记者,和她一起购买并使用了这种美白化妆品的还有十几个人,而她们在使用了这些产品之后也不同程度的出现了血汞含量超标,甚至是汞中毒的情况。

经过对北京部分医院和医生的调查采访记者得知,近年来由于美白化妆品导致的汞中毒呈现出上升趋势,而且美白化妆品已经成为汞中毒的最主要诱因之一。

汞中毒有些啥危害?

严重时会引发肾病可致死

专家告诉记者,除了造成对肾脏的损伤之外,汞中毒还可给受害者带来身体上、精神上和经济上的多种损害。记者在调查中也注意到,受害者因为使用不合格的美白化妆品造成损失之后,要想维护自身的合法权益并不是一件容易的事情。

医学专家指出,汞中毒除了会对人体的肾脏造成伤害,从而导致肾病综合征等疾病之外,还可能对神经系统造成严重的伤害。

此外,由于目前汞超标的美白化妆品成为了导致汞中毒的重要原因,因此汞中毒的受害者多数都是女性,而如果女性在孕产过程中出现汞中毒,那么还可能对胎儿造成无法估量的影响。从她怀孕,到一个胎儿的正常生育,到一个胎儿的哺乳,整个过程,汞都可以直接伤害到她的子代,她的胎儿,她的幼儿。

与此同时,专家还强调,汞中毒引发的肾病如果得不到及时治疗,可能造成更严重的健康危害,甚至可能导致死亡。

受害者经济损失多大?

前前后后花费达20多万

“医疗费就花了7万多了,完了后还有复查费、保健费,而且每年还得去复查。前前后后的花费,加起来总共也得20多万吧。”王女士将自己的遭遇投诉到了当地的工商部门,工商部门也对销售不合格美白化妆品的商店进行了查处,目前整个事件的调查还在进行当中,但是王女士的经济损失到底该由谁来弥补还是一个未知数。

而北京的孙女士已经将销售这种汞超标美白化妆品的美容院告上了法院,目前案件还在审理过程中,她的经济损失到底能不能得到补偿也还没有结果。

专业人士提醒消费者,在遇到这样的情况之后,有多种渠道可以维护合法权益。根据我国消费者权益保护法规定,化妆品侵权纠纷案件一旦发生,可以有五种途径来解决:消费者可以选择自行与经营者协商,私下沟通解决;可以选择向消费者协会投诉,要求消费者协会调解;可以选择到行政机构申诉,或者依据和经营者签订的仲裁协议要求仲裁解决,也可以向法院起诉。

消费者应该如何维权?

建议借鉴食品安全法严惩

虽然有多种渠道可以采取,但是无论是向消协或者行政部门投诉,还是向法院起诉,都需要由消费者提供材料并举证。而这对于很多消费者来说,提供有说服力的证据却是比较困难的,也就是说消费者如果不注意留存相关票据等证据的话,一旦遇到纠纷需要维权的时候,就会增加维权的难度。

法律专家认为,由于有质量安全问题的化妆品可能给使用者造成多种健康危害,也可能会给受害者造成较大的经济损失,因此按照一般商品的质量问题去惩处显然会造成惩罚力度不足,威慑力不够,对消费者损失弥补不充分地情况。针对这样的情况,法律专家建议,一方面简化化妆品质量问题的投诉和起诉程序,另一方面针对化妆品质量问题引起的侵权行为,应该借鉴《食品安全法》中假一赔十的规定,引入惩罚性赔偿条款,从而更好地保护消费者的权益。

相关链接

调查报告显示:112个美白化妆品汞超标

上月中旬,多家民间环保组织发布了《美白祛斑化妆品重金属含量调查报告》,在北京、上海、东莞等10城市抽检的产品中,有112个汞含量超标,占所有抽检产品数量的23%,其中一款名为“颜茹雪雪肌净白嫩肤晚霜”的产品,汞含量高达43988ppm,超标达4万倍。另有近10%的产品砷或铅含量超标。

报告抽查的产品大多为国内品牌,而出问题的产品则包括“天下无斑美白祛斑日霜”、“露兰姬娜特效祛斑晚霜”、“美肤堂中草药养肤疗斑七天白美颜晚霜”等,而且网购也成为重灾区,这些产品通过网上的渠道销售至全国各地。

本组稿件综合央视、羊城晚报

贴心提示

减轻化妆品损害六招

★要认真查看化妆品的标识和生产日期;

★要学会识别劣质化妆品的各种方法;

★使用前可先做皮肤斑贴试验;

★化妆也要有“星期天”休息日;

★不要在脸部同时使用三种以上的产品;

★临睡前要及时彻底卸妆,清洁皮肤。

本版图形 李娜 制

posted @ 2012-05-14 13:34 ** 阅读(152) | 评论 (0)编辑 收藏

人体必须的13种维生素

                                      人体必须的13种维生素


 

人体所需的维生素分为脂溶性和水溶性维生素两大类,前者包括维生素A、D、E、K。后者包括维生素B族(B1、B2、B6、B12)、维生素C、生物素、叶酸、烟酰胺、泛酸。

 

通常来讲,只要食物结构达到平衡,人们可以从食物中获得充分的维生素,不必额外补充。但问题是达到这种平衡并不很容易,所以维生素缺乏也并不少见。

    维生素A

  作用:具有抗氧化、防衰老和保护心脑血管的作用,维持正常视力,预防夜盲症和干眼病。

  摄入不足的坏处:皮肤干燥、有呼吸道感染迹象,眼睛干燥、畏光、多泪、视物模糊等症状。

  这些食物含量丰富:动物肝脏、鱼肝油、奶制品、蛋、鱼卵、胡萝卜、菠菜、豌豆苗、青椒、红薯等。

  贴心提示:电脑操作员、写作人、驾驶员等用眼多的人员应适量多服用维生素A。

  服用长效避孕药的女性应减少摄入维生素A。

  维生素A在体内不易排泄,过量服用容易导致积聚,引起维生素A中毒,哺乳期和孕期的妇女要谨慎服用。

  维生素B1

  作用:参与神经传导、能量代谢,提高机体活力。

  摄入不足的坏处:长时间消化不良、手脚发麻、多发性神经炎和脚气病等。

  这些食物含量丰富:粗粮、杂粮、谷物、坚果和豆类以及瘦肉和动物内脏。

  贴心提示:尽管谷物里含有大量的维生素B1,但是其主要存在于胚芽、米糠和麸皮中,精细加工容易被破坏,所以多吃粗粮最好。

  维生素B2

  作用:参与体内许多代谢和能量生产过程,对维护皮肤黏膜、肌肉和神经系统的功能有重要作用。

  摄入不足的坏处:口臭、失眠、头痛、精神倦怠、皮肤和头发出油、头皮屑增加。

  这些食物含量丰富:肉、蛋、奶、鱼类等。

  贴心提示:维生素B2的天敌是紫外线、水、碱性物质、磺胺类药物和酒精;服用避孕药、孕期和哺乳期的女性应大量补充维生素B2,长期处在精神紧张、压力大环境的人,应当增加用量。

  维生素B6

  作用:维持免疫功能,防止器官衰老。

  摄入不足的坏处:肌肉痉挛、外伤不愈合、孕妇出现过度的恶心、呕吐。

  这些食物含量丰富:动物类食物如牛肉、鸡肉、鱼肉和动物内脏等,全谷物食物如燕麦、小麦麸、麦芽等,豆类如豌豆、大豆等,坚果类如花生、胡桃等。

  贴心提示:服用抗结核药物、雌激素避孕药的人、长期在高温环境工作和电离辐射的人应该增加维生素B6的摄入量。

  维生素B12

  作用:防贫血,提高血液携氧能力,增强记忆力。

  摄入不足的坏处:皮肤苍白、贫血、毛发稀少、食欲不振、呕吐、腹泻。

  这些食物含量丰富:动物类食物。

  贴心提示:只有动物类食物含有维生素B12,所以纯素食者最容易缺乏维生素B12,容易被碱和阳光破坏。

  维生素C

  作用:促进伤口愈合、抗疲劳并提高抵抗力。

  摄入不足的坏处:齿龈紫肿且容易出血、眼膜、皮肤易出血、伤口不易愈合,不能适应外界环境变化,容易感冒。

  这些食物含量丰富:新鲜蔬菜如青菜、韭菜、菠菜、辣椒等,新鲜水果如橙子、红枣、山楂、猕猴桃等。

  贴心提示:人工合成的维生素补充剂,效果不如从天然食物中摄取的维生素C。

  长期大量服用人工合成的维生素补充剂,会在体内产生大量的草酸,有导致肾结石的潜在危险。

  长期服用富含天然维生素的食物则不会中毒。

  维生素D

  作用:调节人体内的钙平衡,促进钙和磷的吸收代谢,保持骨骼健康。

  摄入不足的坏处:多汗、儿童软骨症、成人患骨质软化症。

  这些食物含量丰富:鱼肝油、含油脂的鱼类如三文鱼、沙丁鱼等,以及全脂牛奶、人造奶油、蛋等。

  贴心提示:日光浴是促进维生素D在体内合成的重要途径,在日常膳食条件下,只要经常接触阳光,一般不会产生维生素D缺乏症。

  维生素E

  作用:抗氧化作用,延缓衰老、保护心脑血管。

  摄入不足的坏处:四肢乏力,易出汗、皮肤干燥,头发分叉,痛经。

  这些食物含量丰富:食用油如麦胚油、玉米油、花生油、芝麻油,豆类,粗粮等。

  贴心提示:服用避孕药的妇女和怀孕、哺乳、更年期的妇女应适当增加维生素E的摄取。

  维生素K

  作用:止血、维持正常的凝血功能。

  摄入不足的坏处:凝血功能不正常,导致鼻出血、尿血、皮肤黏膜淤血、胃出血等。

  这些食物含量丰富:绿色蔬菜、动物肝脏和谷类。

  贴心提示:有出血倾向的人应该及时补充维生素K;外科手术以及外伤后应适当补充;过量服用伤害肝脏。

  生物素

  作用:帮助脂肪代谢,防止脱发和少年白发,减轻皮炎症状。

  摄入不足的坏处:少年白发,容易脱发、秃顶,忧郁、失眠等。

  这些食物含量丰富:奶制品、蛋黄、动物肝脏、绿叶蔬菜。

  贴心提示:和其他维生素一起服用效果更好;香烟、抗生素是生物素的大敌。

  烟酸

  作用:促进消化系统的健康,降低胆固醇和甘油三酯,治疗糙皮症。

  摄入不足的坏处:皮炎、头痛、眩晕、疲倦无力、恶心、呕吐、腹泻。

  这些食物含量丰富:瘦肉、动物肝脏、鱼、全麦制品、啤酒酵母、麦芽等。

  贴心提示:糖尿病、青光眼、痛风、胆囊疾病、孕妇、哺乳期妇女、肝病和溃疡病的病人慎用烟酸。

  叶酸

  作用:预防贫血、口腔溃疡。

  摄入不足的坏处:贫血、口疮、身体虚弱、乏力、失眠、健忘、躁动不安。

  这些食物含量丰富:食物中广泛存在。

  贴心提示:妊娠、哺乳期增加叶酸摄入;与维生素C同服,可抑制叶酸在胃肠中的吸收。

 

 

    补充维生素切忌过量

  人们需要补充维生素,但需要有个度,补充太多不仅浪费资源,还可能会影响其它成分的代谢。因此,维生素的补充要适量,不能超过规定的量。

  水溶性维生素服用后可以随着尿液排出体外,毒性较小,但大量服用可损伤人体器官。


  脂溶性维生素则不能乱补,必须按照国家规定的量来补。如果脂溶性的维生素补充过量,包括维生素A、E、K、D,就容易引起体内的中毒反应。

posted @ 2012-04-06 09:58 ** 阅读(458) | 评论 (0)编辑 收藏

用线性插值算法实现图像缩放

用线性插值算法实现图像缩放

 

猛禽 [Mental Studio](个人专栏 )(BLOG )

http://mental.mentsu.com

 

在 Windows 中做过图像方面程序的人应该都知道 Windows 的 GDI 有一个 API 函数: StretchBlt ,对应在 VCL 中是TCanvas 类的 StretchDraw 方法。它可以很简单地实现图像的缩放操作。但问题是它是用了速度最快,最简单但效果也是最差的“最近邻域法”,虽然在大多数情况下,它也够用了,但对于要求较高的情况就不行了。

不久前我做了一个小玩意儿(见 《人个信息助理之我的相册》 ),用于管理我用 DC 拍的一堆照片,其中有一个插件提供了缩放功能,目前的版本就是用了 StretchDraw ,有时效果不能令人满意,我一直想加入两个更好的:线性插值法和三次样条法。经过研究发现三次样条法的计算量实在太大,不太实用,所以决定就只做线性插值法的版本了。

从 数字图像处理的基本理论,我们可以知道:图像的变形变换就是源图像到目标图像的坐标变换。简单的想法就是把源图像的每个点坐标通过变形运算转为目标图像的 相应点的新坐标,但是这样会导致一个问题就是目标点的坐标通常不会是整数,而且像放大操作会导致目标图像中没有被源图像的点映射到,这是所谓“向前映射” 方法的缺点。所以一般都是采用“逆向映射”法。

但 是逆向映射法同样会出现映射到源图像坐标时不是整数的问题。这里就需要“重采样滤波器”。这个术语看起来很专业,其实不过是因为它借用了电子信号处理中的 惯用说法(在大多数情况下,它的功能类似于电子信号处理中的带通滤波器),理解起来也不复杂,就是如何确定这个非整数坐标处的点应该是什么颜色的问题。前 面说到的三种方法:最近邻域法,线性插值法和三次样条法都是所谓的“重采样滤波器”。

所 谓“最近邻域法”就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色。而“线性插值法”就是根据周围最接近的几个点(对于平面图像来 说,共有四点)的颜色作线性插值计算(对于平面图像来说就是二维线性插值)来估计这点的颜色,在大多数情况下,它的准确度要高于最近邻域法,当然效果也要 好得多,最明显的就是在放大时,图像边缘的锯齿比最近邻域法小非常多。当然它同时还带业个问题:就是图像会显得比较柔和。这个滤波器用专业术语来说(呵 呵,卖弄一下偶的专业 ^_^ )叫做:带阻性能好,但有带通损失,通带曲线的矩形系数不高。至于三次样条法我就不说了,复杂了一点,可自行参考数字图像处理方面的专业书籍,如本文的参考文献。

再来讨论一下坐标变换的算法。简单的空间变换可以用一个变换矩阵来表示:

[x’,y’,w’]=[u,v,w]*T

其中: x’,y’ 为目标图像坐标, u,v 为源图像坐标, w,w’ 称为齐次坐标,通常设为 1 , T 为一个 3X3 的变换矩阵。

这种表示方法虽然很数学化,但是用这种形式可以很方便地表示多种不同的变换,如平移,旋转,缩放等。对于缩放来说,相当于:

          [Su  0  0 ]

[x, y, 1] = [u, v, 1] * | 0  Sv  0 |

          [0   0  1 ]

其中 Su,Sv 分别是 X 轴方向和 Y 轴方向上的缩放率,大于 1 时放大,大于 0 小于 1 时缩小,小于 0 时反转。

矩阵是不是看上去比较晕?其实把上式按矩阵乘法展开就是:

{ x = u * Su

{ y = v * Sv

就这么简单。 ^_^

有了上面三个方面的准备,就可以开始编写代码实现了。思路很简单:首先用两重循环遍历目标图像的每个点坐标,通过上面的变换式(注意:因为是用逆向映射,相应的变换式应该是: u = x / Su 和 v = y / Sv )取得源坐标。因为源坐标不是整数坐标,需要进行二维线性插值运算:

P = n*b*PA + n * ( 1 – b )*PB + ( 1 – n ) * b * PC + ( 1 – n ) * ( 1 – b ) * PD

其中: n 为 v (映射后相应点在源图像中的 Y 轴坐标,一般不是整数)下面最接近的行的 Y 轴坐标与 v 的差;同样 b 也类似,不过它是 X 轴坐标。 PA-PD 分别是 (u,v) 点周围最接近的四个(左上,右上,左下,右下)源图像点的颜色(用TCanvas 的 Pixels 属性)。 P 为 (u,v) 点的插值颜色,即 (x,y) 点的近似颜色。

这段代码我就不写的,因为它的效率实在太低:要对目标图像的每一个点的 RGB 进行上面那一串复杂的浮点运算。所以一定要进行优化。对于 VCL 应用来说,有个比较简单的优化方法就是用 TBitmap 的 ScanLine 属性,按行进行处理,可以避免 Pixels 的像素级操作,对性能可以有很大的改善。这已经是算是用 VCL 进行图像处理的基本优化常识了。不过这个方法并不总是管用的,比如作图像旋转的时候,这时需要更多的技巧。

无论如何,浮点运算的开销都是比整数大很多的,这个也是一定要优化掉的。从上面可以看出,浮点数是在变换时引入的,而变换参数 Su,Sv 通常就是浮点数,所以就从它下手优化。一般来说, Su,Sv 可以表示成分数的形式:

Su = ( double )Dw / Sw; Sv = ( double )Dh / Sh

其中 Dw, Dh 为目标图像的宽度和高度, Sw, Sh 为源图像的宽度和高度(因为都是整数,为求得浮点结果,需要进行类型转换)。

将新的 Su, Sv 代入前面的变换公式和插值公式,可以导出新的插值公式:

因为:

b = 1 – x * Sw % Dw / ( double )Dw;  n = 1 – y * Sh % Dh / ( double )Dh

设:

B = Dw – x * Sw % Dw; N = Dh – y * Sh % Dh

则:

b = B / ( double )Dw; n = N / ( double )Dh

用整数的 B , N 代替浮点的 b, n ,转换插值公式:

P = ( B * N * ( PA – PB – PC + PD ) + Dw * N * PB + DH * B * PC + ( Dw * Dh – Dh * B – Dw * N ) * PD ) / ( double )( Dw * Dh )

这里最终结果 P 是浮点数,对其四舍五入即可得到结果。为完全消除浮点数,可以用这样的方法进行四舍五入:

P = ( B * N … * PD + Dw * Dh / 2 ) / ( Dw * Dh )

这样, P 就直接是四舍五入后的整数值,全部的计算都是整数运算了。

简单优化后的代码如下:

int __fastcall TResizeDlg::Stretch_Linear(Graphics::TBitmap * aDest, Graphics::TBitmap * aSrc)

{

    int sw = aSrc->Width - 1, sh = aSrc->Height - 1, dw = aDest->Width - 1, dh = aDest->Height - 1;

    int B, N, x, y;

    int nPixelSize = GetPixelSize( aDest->PixelFormat );

    BYTE * pLinePrev, *pLineNext;

    BYTE * pDest;

    BYTE * pA, *pB, *pC, *pD;

    for ( int i = 0; i <= dh; ++i )

    {

        pDest = ( BYTE * )aDest->ScanLine[i];

        y = i * sh / dh;

        N = dh - i * sh % dh;

        pLinePrev = ( BYTE * )aSrc->ScanLine[y++];

        pLineNext = ( N == dh ) ? pLinePrev : ( BYTE * )aSrc->ScanLine[y];

        for ( int j = 0; j <= dw; ++j )

        {

             x = j * sw / dw * nPixelSize;

            B = dw - j * sw % dw;

            pA = pLinePrev + x;

            pB = pA + nPixelSize;

            pC = pLineNext + x;

            pD = pC + nPixelSize;

            if ( B == dw )

            {

                pB = pA;

                pD = pC;

            }

            for ( int k = 0; k < nPixelSize; ++k )

                *pDest++ = ( BYTE )( int )(

                    ( B * N * ( *pA++ - *pB - *pC + *pD ) + dw * N * *pB++

                    + dh * B * *pC++ + ( dw * dh - dh * B - dw * N ) * *pD++

                    + dw * dh / 2 ) / ( dw * dh )

                );

        }

    }

    return 0;

}

应该说还是比较简洁的。因为宽度高度都是从 0 开始算,所以要减一, GetPixelSize 是根据 PixelFormat 属性来判断每个像素有多少字节,此代码只支持 24 或 32 位色的情况(对于 15 或 16 位色需要按位拆开 — 因为不拆开的话会在计算中出现不期望的进位或借位,导致图像颜色混乱 — 处理较麻烦;对于 8 位及 8 位以下索引色需要查调色板,并且需要重索引,也很麻烦,所以都不支持;但 8 位灰度图像可以支持)。另外代码中加入一些在图像边缘时防止访问越界的代码。

通过比较,在 PIII-733 的机器上,目标图像小于 1024x768 的情况下,基本感觉不出速度比 StretchDraw 有明显的慢(用浮点时感觉比较明显)。效果也相当令人满意,不论是缩小还是放大,图像质量比 StretchDraw 方法有明显提高。

不过由于采用了整数运算,有一个问题必须加以重视,那就是溢出的问题:由于式中的分母是 dw * dh ,而结果应该是一个 Byte 即 8 位二进制数,有符号整数最大可表示 31 位二进制数,所以 dw * dh 的值不能超过 23 位二进制数,即按 2:1的宽高比计算目标图像分辨率不能超过 4096*2048 。当然这个也是可以通过用无符号数(可以增加一位)及降低计算精度等方法来实现扩展的,有兴趣的朋友可以自己试试。

当然这段代码还远没有优化到极致,而且还有很多问题没有深入研究,比如抗混叠( anti-aliasing )等,有兴趣的朋友可以自行参考相关书籍研究,如果你有什么研究成果,非常欢迎你为我的程序编写插件实现。

 

Mental Studio 猛禽

2004-3-28

参考文献:

崔屹《数字图像处理技术与应用》电子工业出版社, 1997

 

 

//上面的只能是24位的位图,现在修改了以个Delphi版本的,支持多种位图格式了,应该。测试,32和24位都可

procedure StretchBitmap(Dest, Src: TBitmap);
var
  sw, sh, dw, dh, B, N, x, y, i, j, k, nPixelSize: DWord;
  pLinePrev, pLineNext, pDest, pA, pB, pC, pD: PByte;
begin
  sw := Src.Width -1;
  sh := Src.Height -1;
  dw := Dest.Width -1;
  dh := Dest.Height -1;
  //获得显示模式
  nPixelSize := Integer(Src.PixelFormat);
  if nPixelSize < 4 then
    nPixelSize := 4
  else if nPixelSize = 4 then
    inc(nPixelSize)
  else if nPixelSize > 7 then
    nPixelSize := 7;
  Dest.PixelFormat := TPixelFormat(nPixelSize);
  nPixelSize := nPixelSize - 3;
  for i := 0 to dh do
  begin
    pDest := Dest.ScanLine[i];
    y := i * sh div dh;
    N := dh - i * sh mod dh;
    pLinePrev := Src.ScanLine[y];
    Inc(y);
    if N = dh then
      pLineNext := pLinePrev
    else
      pLineNext := Src.ScanLine[y];
    for j := 0 to dw do
    begin
      x := j * sw div dw * nPixelSize;
      B := dw - j * sw mod dw;
      pA := pLinePrev;
      Inc(pA, x);
      pB := pA;
      Inc(pB, nPixelSize);
      pC := pLineNext;
      Inc(pC, x);
      pD := pC;
      Inc(pD, nPixelSize);
      if B = dw then begin
        pB := pA;
        pD := pC;
      end;
      for k := 0 to nPixelSize -1 do
      begin
        pDest^ := Byte(DWord( (B * N * DWord(pA^ - pB^ - pC^ + pD^) + dw * N * pB^
                              + dh * B * pC^ + (dw * dh - dh * B - dw * N)* pD^
                              + dw * dh div 2) div (dw * dh) ));
        Inc(pDest);
        Inc(pA);
        Inc(pB);
        Inc(pC);
        Inc(pD);
      end;
    end;
  end;
end;

posted @ 2012-04-04 20:20 ** 阅读(874) | 评论 (0)编辑 收藏

矢量地图缩放、旋转、平移操作的实现原理

矢量地图缩放、旋转、平移操作的实现原理

[ 来源:互联网 | 时间:2007年10月16日 | 收藏本文 ] 【  

一、三种坐标系统
世界坐标系, 始终保持不变, 如地理坐标系
局部坐标系, 以物体中心为坐标原点,物体的旋转、平移、缩放都围绕局部坐标系进行。物体旋转、缩放、平移时坐标系也相应的旋转、缩放、平移。如,地图经投影之后平面坐标系。
屏幕坐标系,计算机屏幕的坐标系。

二、算法[2,3]
通过操作坐标系,来实现物体的线性变换。如, 当平移一个点时, 是平移坐标系,然后重绘该点。

基本上每个GIS软件都有地图缩放、旋转、平移操作。在GIS中,有栅格和矢量两种格式,每种格式采用不同的处理方法,在此只考虑矢量数据, 栅格数据在以后处理。

矢量数据的操作有强大的理论依据,即计算机图形学。在计算机图形学中,平移、旋转、缩放统称为二维几何变换[1]。

Affine矩阵:

m11  m12  0
m21  m22  0
dx   dy   1
  
dx,dy控制水平和垂直平移
m11,m22控制缩放
m12,m21控制旋转

 设点(x,y)经Affine矩阵变换后的点坐标为(x',y'), 则有
 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy


参考文献:
1. Donald Hearn, M.Pauline Bake  计算机图形学(第二版) 141-167
2. http://www.qiliang.net/qt/qwmatrix.html QWMatrix Class Reference
3. http://www.csdn.net/develop/Article/21/21922.shtm  Windows GDI中的坐标系

posted @ 2012-04-04 20:14 ** 阅读(1538) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 

导航

统计

公告

你好!

常用链接

留言簿(2)

随笔档案

文章分类

文章档案

新闻档案

相册

收藏夹

C#学习

友情链接

搜索

最新评论

阅读排行榜

评论排行榜