我们学校要弄商务礼仪大赛,请哪位好心人帮忙给一点关于商务礼仪的题库,我们要先笔试······
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们学校要弄商务礼仪大赛,请哪位好心人帮忙给一点关于商务礼仪的题库,我们要先笔试······相关的知识,希望对你有一定的参考价值。
第一总分:选择题(每题2分,共计20分。请将您认为正确有答案填在题目后面的括号中)1.在商务交往中,索取名片时,先递名片给对方,再问如何与对方联系是属于哪 种名片索取法?( )
A.索取法 B.平等法 C.交易法 D.谦恭法 E.引导法 F.激将法
2.以下说法不正确的是( )
A.男性腰上所挂东西的多少与地位成反比。
B.女性在正式场合中不可以穿黑色皮裙。
C.在所有的商务交往中都要强调女性看包、男性看表的基本要求。
D.与客户面谈时要保证手机不响,最好当着客户的面关机。
3.打电话时,以下表述正确的是( )
A.拔电话时为了不影响周围的人工作,不要使用免提方式拔电话。
B.接电话时,有良好修养的人一般在电话铃声响起第二声到第三声时接听,超过五声不接听,拔打电话,对方铃声响过五次未接电话时,应该稍候再拨。
C.挂电话时,地位高者先挂电话。
D.通话时声音以对方能够听清楚为原则,尽量压低声音。
4.商务礼仪中有很多个关于三的要求,以下表述正确的是( )
A.接待三声是指:来有问声,问有答声,去有留声。
B.男性正装的三原色是指:全身上下基本颜色不超过三个色系。
C.女性化装三个基本点是:化妆要自然、美化和避人。
D.商务礼仪的基本特征有三点:规范性、对象性和尊重性。
5.商务礼仪的目的是( )
A.体现个人素质 B.有利交往应酬 C.维护企业形象 D.提升自身价值
6.女性在商务交往中佩戴首饰时,应该注意到的有( )
A.符合身份 B.同质同色 C.以少为佳 D.体现人价值
7.双排座轿车的VIP座位是( )
A.副驾驶座 B.后排右座 C.后排左座 D.后排中座
8.关于着装的描述,以下正确的的是( )
A.制服的扣子最下面三颗是一定要扣的。
B.西装的最下面一颗扣子一般不扣。
C.女性在正式场合不要穿过于艳丽的服饰。
D.男士西装首选颜色是深蓝色,其次为灰色或黑色。
9.对职场礼仪的描述,正确的是( )
A.着装时不要过分杂乱,过分暴露,过分紧身或太过性感。
B.称呼中应注意相互尊重,对上司一般在在姓后面加上职务称谓。
C.同上司同行时,要跟随于上司左后方。
D.不在办公室或工作场所吃东西或吸烟。
10.公司内部用餐时应注意的问题是( )
A.吃饭进餐时不可大声说话,以免影响他人食欲。
B.进餐时应多次少取,分多次取用菜肴。
C.不要留痕,离开时清理桌面自己留下的垃圾。
D.离开后将椅子或凳子归位,放在指定的地方。
2008-1-14 19:21 回复
59.40.133.* 2楼
第二部分 简析题(每题7,共计35分)
1.简析商务人员的工作能力为何包括业务能力和交际能力。
2.就你自己对商务礼仪的理解谈谈“尊重为本”。
3.请就你实际工作的内容谈谈就餐时应该注意哪些问题,如果在正式场合应注意哪些问题。
4.一个合格的白领丽人在语言沟通与交往中应避免些什么问题。
5.请谈谈在赠送礼品时对礼品的选择与包装的问题。
第三部分.实践题(第题15分,共计45分)
1. 公司来了一个台湾新客户,这个客户之前有与我公司没有过任何合作,对方是女性,她在宝安机场下飞机后,请就你学习的商务礼仪对其接人、到厂参观、用餐和电话沟通、业务交流和订单促成等方面,讲一讲整个经过中应该注意的问题。
2.你需要参加一个客户的建厂十周年庆典,客户公司要求你下午两点到厂,请结合你的工作特性,发挥一下自己的相向力,结合我公司目前的条件,细述怎样应对客户的邀请、礼品与见面时的礼貌用语、在对方公司宴会上的细节与衣着关键,以及如何告别等经过。
3.假如你和你男友(或者老公)代表公司参加客户公司营销总监的婚礼,请结合你学习商务礼仪的基本知识,对你男友全身的着装用商务方式进行包装。
C.女性在商务交往场合不能穿皮裙;(正确答案为:不能穿黑色皮裙,通常最好不要穿破裙)
D. 高级场合:男性看表,女性看包。普通商务场合:男性看腰,女性看头。
16. 商务着装基本规范(ABD)
A.符合身份; B.善于搭配; C.遵守惯例 D.区分场合,因场合不同而着装不同。
17. 男性的“三个三”是指(BCD )
A.全身不能多过三种品牌; B. 鞋子、腰带、公文包三处保持一个颜色,黑色最佳。
C. 全身颜色不得多于三种颜色(色系);
D. 左袖商标拆掉;不穿尼龙袜,不穿白色袜;领带质地选择真丝和毛的,除非制服配套否则不用一拉得,颜色一般采用深色,短袖衬衫打领带只能是制服短袖衬衫,夹克不能打领带。
18.商务礼仪中有很多与三有关的要求,请选出正确的表述。(ABDEF)
A.服饰三要素:色彩、款式、面料; B.接待三声:来有迎声、问有答声、去有送声;
C.热情三到:眼到、心到、手到; D. 微观上商务礼仪有三个基本特征:规范性、对象性、技巧性。
E.沟通中三个循序渐进的方面:(1)自我定位;(2)定位他人;(3)遵守惯例。
F.领带的三种时尚:男人的酒窝Men’ Dimple、不用领带夹(除非经常挥手致意的VIP和穿制服并使用特制领带夹的公务人员)、领带下端箭头在腰带扣的上端(西服一般不扣最下面的扣子,合身的西服最下面扣子正好在腰带扣处,这样领带不至于露出下端);
19.正规商务中,关于着装的说法,以下哪些说法不正确(D)
A.上班时间不能穿时装和便装; B.个人工作之余的自由活动时间不穿套装和制服.
C. 工作之余的交往应酬,最好不要穿制服; D. 公务场合夏天男性可穿短袖衬衫配西裤,女性穿衬衫加套裙;
20.对于座次的描述正确的有(ACD )
A.后排高于前排 B.两侧高于中央 C.中央高于两侧 D.内侧高于外侧
E.前排高于后排 F.外侧高于内侧
21.有三种情况下通常不宜使用商务礼仪,这三种场合是( BCD )
A.初次交往 B.老朋友相聚 C.夫妻之间 D.与少数民族交往
22. 自我介绍应注意的有(BDE)
A.先介绍再递名片; B. 先递名片再做介绍; C.初次见面介绍不宜超过5分钟
D.初次见面介绍不宜超过2分钟 E.先介绍自己,再让对方介绍 F.先让对方做完自我介绍,自己再做介绍
23.以下对礼品的描述正确的有(ACD)
A.礼品的特性有:纪念性、宣传性、便携性、独特性、时尚性、习俗性等;
B.礼品的特性有:纪念性、宣传性、价值性、独特性、时尚性、美观性等
C. 选择礼品的基本原则:人、物、时、地;
D.通常不要给异性常送玫瑰,特别是不要送1朵红玫瑰。
24.商务礼仪的3A原则是(ACF)
A.理解对方 B.注视对方 C. 重视对方 D.了解对方 E. 接受对方 F.赞美对方
25. 西餐宴会上女主人的行为表述正确的有(BCD)
A. 在西餐宴会上女主人是第一次序; B.女主人就座其它人才能就座,女主人打开餐巾表示宴会开始;
C.女主人拿起刀叉其它人才可以吃; D.女主人把餐巾放在桌子上表示宴会结束。
第二部分,列举题(每题5分,共25分)
1.女性在商务交往场合应着裙装,应注意“五不准”是:
2.职场着装六忌是:
3.女性化妆应该注意的事宜有:
4. 社交场合的“六不问”是指:
5. 公务交往最值得关注的五个方面是:
第三部分,常识题(共25分)
1.请详述进行商务宴请(便宴)应优先考虑的问题(中、外、民族等要全面,10分).
2.如果您代表我公司与华为公司在嘉辉会谈判交换机胶袋和合同事宜,请结合所学商务礼仪,细述着装、入座、介绍方面的礼仪以及如何离开,送客。(15分)
【例】索取名片四种常规方法:
1、交易法:首先递送名片;
2、激将法:递送同时讲“能否有幸交换一下名片”;
3、谦恭法:对於长辈或高职务者,“希望以后多指教,请问如何联系?”
4、平等法:“如何与你联系?”
【例】Mobile使用:“不响(当对方面关机,暗示“为你而关机”)”、“不听”、“不出去接听”。如因业务繁忙等原因无法关机可改为震动或交由他人代管
学习商务礼仪的三个目的:
1、提高个人素质:教养体现於细节,细节体现个人素质;
2、有利於交往应酬;
3、维护企业形象:商务交往中个体代表整体。
商务人员的工作能力:1、业务能力;2、交际能力(是一种可持续发展的能力,人际关系重视程度与处理能力)。——双能力
第二、三集 尊重为本——商务礼仪的基本理念
【例】掌心向上表示谦恭尊敬,掌心向下表示训斥
1、前提:了解交往物件,最低要求了解其不喜欢什麼;
【例】不在女性面前夸奖其他女性
2、第一层面—出发点:自尊,通过言谈举止服饰、待人接物等方面体现。
【例】女性佩戴首饰:符合身份,以少为佳;两类不适宜佩戴的首饰:展示财力、在社交场合才佩戴的珠宝首饰和展示性别魅力的首饰(如胸针、脚链);佩戴原则:同质同色。
【例】女性在商务交往场合应著裙装,应注意“五不准”:(1)黑色皮裙不穿,尤其在对外商务交往中;(2)正式高级场合不光腿;(3)残破的袜子不穿(随身带一备用袜);(4)鞋袜不配套,不能穿便装鞋,穿双包鞋(前不露脚趾后不露脚跟);(5)裙袜之间无空白,否则被称为“三节腿”。
【例】高级场合:男性看表,女性看包。普通商务场合:男性看腰,女性看头(发式:不染发、不长於肩部,可盘发,束发不太正式且有年龄限制)。
3、第二层面—尊重他人
三个注意事项:
(1)对交往对象准确定位:
【例】外事交往中:外宾礼物都有包装,包装价值占整个礼品总价值的三分之一,礼品200元,包装则应为100元;当面打开,略加端详并称赞,不看则对对方失敬;就餐不能犯3个错误:不能当众修饰或整理服饰;敬酒不劝酒,请菜不挟菜;进餐不能发出声音。当然,国内商务交往有一定差别。
(2)遵守规则:
【例】接受名片,注意2点:有来有往,没名片可讲“用完了”或“没有带”(善意的欺骗);
(以下缺... ...)
第四、五集 善於表达
【例】著装表达:男性腰上不要挂东西,应放在手包裏;称呼表达:夫人、物件、爱人;招呼语言:吃饭了吗?=nice to meet you,you are sexy and beautiful =你吃了吗?;不要吝于称赞对方。
【例】双排轿车上哪个位置为尊(上座)?
客人坐在哪里,哪里就是上座(主随客便,恭敬不如从命);具体讲,有三个上座,其判断标准为“社交场合不同,人际关系不同,则轿车位次不同”:
社交场合:主人开车,副驾驶座为上座。
商务场合:专职司机,后排右座为上(根据国内交通规则而定),副驾驶座为随员座;VIP上座(安保上座),为司机后面那个座位,安全系数最高,副驾驶座为末座。
管理三段论:把想到的写下来(立规矩)——>按照写下来的去做(守规矩)——>把做过的事情记下来『sadfree:实际上就是PDCA』
商务礼仪有两个层次:有所为和有所不为。
【例】男性正装为西装。应遵循“三个三”:
1、三色原则:全身颜色不得多於三种颜色(色系);
2、三一定律:鞋子、腰带、公事包三处保持一个颜色,黑色最佳;
3、三大禁忌:左袖商标拆掉;不穿尼龙袜,不穿白色袜;领带质地选择真丝和毛的,除非制服配套否则不用一拉得,颜色一般采用深色,短袖衬衫打领带只能是制服短袖衬衫,夹克不能打领带。 领带的三种时尚:男人的酒窝Men’ Dimple、不用领带夹(除非经常挥手致意的VIP和穿制服并使用特制领带夹的公务人员)、领带下端箭头在腰带扣的上端(西服一般不扣最下面的扣子,合身的西服最下面扣子正好在腰带扣处,这样领带不至於露出下端)
服饰三要素:色彩、款式、面料
正装西装三要求:单色、深色(首选蓝、次选灰、后选黑,黑色只要用於婚丧等仪式);纯毛;单排扣。
第六、七集 形式规矩
意义:提高个人素质,提高企业形象
【例】双方通电话,应由谁挂断电话?地位高者(上级单位)先挂、同级间主叫先挂。
职场著装六忌:过分杂乱、过分鲜艳、过分暴露、过分透视、过分短小、过分紧身。
商务交往称呼四忌:无称呼(“喂,..”)、替代性程式(“6号”)、地方性称呼、称兄道弟。
【例】礼貌服务三要素:
(1)接待三声:来有迎声、问有答声、去有送声;
(2)文明五句:问候语“你好”、请求语“请”、感谢语“谢谢”、抱歉语“对不起”、?
(3)热情三到:
A.眼到(注视部位:头部和双眼;注视角度:平视,不要时仰视;注视时间:注视时间应在相处总时间的三分之一);
B.口到(讲普通话;因人而异、区分物件,如对交罚款者讲欢迎再来)
C.意到(要有表情;表情要与客人互动,如医院的所谓微笑服务;不卑不亢,如笑时露上面六个牙齿)。
第八、九集 沟通技巧
国际上对“商务礼仪”的解释是商务人员的沟通技巧,实际上是如何在商务交往中达到最大相互(双向)沟通效果,包括三个循序渐进的方面:(1)自我定位;(2)定位他人;(3)遵守惯例。
商务人员须知的基本职场交谈忌语“六不谈”:(1)不能非议国家和政府;(2)不涉及秘密;(3)不涉及交往物件的内部事务;(4)不在背后议论领导、同事和同行,来说是非者必是是非人;(5)不谈论格调不高的问题;(6)不涉及私人问题,特别是在国际交往中。职场交往有“私人问题五不问”:第一不问收入(痛苦来自比较),第二不问年纪(特别是临近退休者和白领丽人),第三不问婚姻家庭,第四不问健康状态,第五不问个人经历(英雄不问出处,重在现在)。
第十集 形象设计
商务人员的个人形象代表企业形象、产品/服务形象,甚至国家和民族形象。
何为商务礼仪中的“形象”?:即外界对我们的印象和评价。
“形象”构成的要素:知名度和美誉度。
“形象就是宣传,形象就是效益,形象就是服务,形象就是生命,形象重於一切”
设计个人形象注意两个方面:
(1)设计个人形象最重要的是个人定位。
(2)“首轮效应”决定了形象好坏的关键点:在人际交往中,特别是初次交往中,留给人的第一印象是最重要的。
个人形象六要素:
(1) 仪表。重点是头部和手部:鼻毛不要过长、无异味、无异物;男性头发不要长於7厘米,做到前发不附额,侧发不掩耳,后发不及领。
(2) 表情。三点要求:自然;友善;良性互动。
(3) 举止。关注两点:举止文明,如不当众整理服饰;举止规范。
(4) 服饰。最关键问题是选择搭配到位:符合身份,和谐美感。
(5) 谈吐。涉及三点:压低音量;慎选内容;礼貌用语的使用。
(6) 待人接物。为综合性要素,有三点基本事项:诚信为本;遵纪守法;遵时守约。
【女性商务人员化妆】
基本要求:化妆上岗、化淡妆上岗;
三点基本注意事项:
(1) 化妆要自然,妆成有却无,如唇彩应考虑服饰、肤色的搭配,眼影应自然过渡;
(2) 化妆要美化:庄重保守,不求时尚前卫,要符合常规审美标准;
(3) 化妆要避人。
第十一集 商务礼仪的基本特徵
微观上来讲,商务礼仪有三个基本特徵:
1、规范性
指待人接物的标准做法。如酒会等自助餐的礼仪为“多次少取”,喝咖啡礼仪为调羹基本不用,不能拿调羹舀食
【例】陪同接待人员将客人介绍给公司董事长和总经理的介绍顺序:此为不分男女、不分老幼、不看职务的宾主介绍,应先介绍主人(客人有优先知情权),主人按职务高低介绍,再讲客人介绍给主人。
2、对象性
【例】陪同引导人员引导客人上楼的前后顺序:如果客人认路,进出门、上下楼,前面位置为尊;客人不认路,则应在客人左前方。
【例】进行商务宴请(便宴)应优先考虑的问题是菜肴安排问题:最关键的是了解客人不能吃什麼,首先要问“请问您有什麼忌口的?”
民族禁忌:外事交往中注意外国人忌口:(1)中式动物内脏;(2)动物头脚;(3)宠物(猫、狗、鸽子);(4)珍稀动物;(5)淡水鱼;(6)无鳞无鳍的鱼(蛇、鳝、泥鳅、鲶鱼)。
宗教禁忌:伊斯兰教忌猪、烟、酒、血;佛教忌荤腥是指有异味的葱、蒜和韭菜等。
土客吃洋,洋客吃土:(1)吃特色;(2)吃文化;(3)吃环境。欧美人爱吃面食、油炸食品、酸甜食品、大块肉或肉片:饭前开胃菜、饭后甜品。
3、技巧性
【例】招待客人询问饮料问题:应采用封闭式询问“请问您喝咖啡还是茶…”,而不要问开放式问题“需要什麼饮料?”
【例】公司会议,主席台上董事长和总经理座次安排有三个基本原则:(1)前排高於后排;(2)中央高於两侧;(3)政务活动中以左为上,国际惯例/商务活动中以右为上(左右指就座人之间的左右,与观众视角无关)。 参考技术A 我觉得这个你只要围绕商务礼仪自由发挥就可以
Java基于opencv—透视变换矫正图像
很多时候我们拍摄的照片都会产生一点畸变的,就像下面的这张图
虽然不是很明显,但还是有一点畸变的,而我们要做的就是把它变成下面的这张图
效果看起来并不是很好,主要是四个顶点找的不准确,会有一些偏差,而且矫正后产生的目标图是倒着的,哪位好心人给说说为啥
因为我也没有测试畸变很大的图像,也不能保证方法适用于每个图像,这里仅提供我的思路供大家参考。
思路:
我们最重要的就是找到图像的四个顶点,有利用hough直线,求直线交点确定四个顶点,有采用寻找轮廓确定四个顶点等等;今天我提供的思路,也是采用寻找轮廓的方法,用approxPolyDP函数,对图像轮廓点进行多边形拟合,可以得到大概的一个这样的图
可以看到图像的四个顶点处,都有小白点。接下来我们要做的就是把这些点归类,即划分出四个区域[左上,右上,右下,左下];我采用的是利用opencv的寻找轮廓,得到最大轮廓,然后生成最小外接矩形,确定四个顶点的大致位置;然后设置一个阀值,与上图中的点集合求距离,大于阀值的舍弃,小于的保留,可以得到如下的图像
这样所有的点集都落到了四个区域,利用矩形中,对角线距离最大,确定四个顶点的位置,发现效果并不是很好,如下图
到此四个顶点的位置大概的确定了,就只需要根据输入和输出点获得图像透视变换的矩阵,然后透视变换;
我们把思路再理一下:
1、寻找图像的四个顶点的坐标(重要)
思路: 1、canny描边 2、寻找最大轮廓 3、对最大轮廓点集合逼近,得到轮廓的大致点集合 4、把点击划分到四个区域中,即左上,右上,左下,右下 5、根据矩形中,对角线最长,找到矩形的四个顶点坐标
2、根据输入和输出点获得图像透视变换的矩阵
3、透视变换
我们来跟着思路实现一下代码
1、canny描边
/**
* canny算法,边缘检测
*
* @param src
* @return
*/
public static Mat canny(Mat src) {
Mat mat = src.clone();
Imgproc.Canny(src, mat, 60, 200);
HandleImgUtils.saveImg(mat, "C:/Users/admin/Desktop/opencv/open/x/canny.jpg");
return mat;
}
2、寻找最大轮廓;3、对最大轮廓点集合逼近,得到轮廓的大致点集合(代码中有很多冗余,后期会进行优化)
/**
* 利用函数approxPolyDP来对指定的点集进行逼近 精确度设置好,效果还是比较好的
*
* @param cannyMat
*/
public static Point[] useApproxPolyDPFindPoints(Mat cannyMat) {
List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Mat hierarchy = new Mat();
// 寻找轮廓
Imgproc.findContours(cannyMat, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_NONE,
new Point(0, 0));
// 找出匹配到的最大轮廓
double area = Imgproc.boundingRect(contours.get(0)).area();
int index = 0;
// 找出匹配到的最大轮廓
for (int i = 0; i < contours.size(); i++) {
double tempArea = Imgproc.boundingRect(contours.get(i)).area();
if (tempArea > area) {
area = tempArea;
index = i;
}
}
MatOfPoint2f approxCurve = new MatOfPoint2f();
MatOfPoint2f matOfPoint2f = new MatOfPoint2f(contours.get(index).toArray());
// 原始曲线与近似曲线之间的最大距离设置为0.01,true表示是闭合的曲线
Imgproc.approxPolyDP(matOfPoint2f, approxCurve, 0.01, true);
Point[] points = approxCurve.toArray();
return points;
}
获取四个顶点的参照点
/**
* 获取四个顶点的参照点,返回Point数组[左上,右上,右下,左下] 思路: 我们可以把四个点分成两部分,左部分,右部分
* 左部分:高的为左上,低的为左下(高低是以人的视觉) 右部分同理 首先我们找到最左和最右的位置,以它们的两个中间为分界点,
* 靠左的划分到左部分,靠右的划分到右部分 如果一个区域有三个或更多,哪个比较靠近分界线,划分到少的那个区域
*
* @param cannyMat
* @return
*/
public static Point[] findReferencePoint(Mat cannyMat) {
RotatedRect rect = findMaxRect(cannyMat);
Point[] referencePoints = new Point[4];
rect.points(referencePoints);
double minX = Double.MAX_VALUE;
double maxX = Double.MIN_VALUE;
for (int i = 0; i < referencePoints.length; i++) {
referencePoints[i].x = Math.abs(referencePoints[i].x);
referencePoints[i].y = Math.abs(referencePoints[i].y);
minX = referencePoints[i].x < minX ? referencePoints[i].x : minX;
maxX = referencePoints[i].x > maxX ? referencePoints[i].x : maxX;
}
double center = (minX + maxX) / 2;
List<Point> leftPart = new ArrayList<Point>();
List<Point> rightPart = new ArrayList<Point>();
// 划分左右两个部分
for (int i = 0; i < referencePoints.length; i++) {
if (referencePoints[i].x < center) {
leftPart.add(referencePoints[i]);
} else if (referencePoints[i].x > center) {
rightPart.add(referencePoints[i]);
} else {
if (leftPart.size() < rightPart.size()) {
leftPart.add(referencePoints[i]);
} else {
rightPart.add(referencePoints[i]);
}
}
}
double minDistance = 0;
int minIndex = 0;
if (leftPart.size() < rightPart.size()) {
// 左部分少
minDistance = rightPart.get(0).x - center;
minIndex = 0;
for (int i = 1; i < rightPart.size(); i++) {
if (rightPart.get(i).x - center < minDistance) {
minDistance = rightPart.get(i).x - center;
minIndex = i;
}
}
leftPart.add(rightPart.remove(minIndex));
} else if (leftPart.size() > rightPart.size()) {
// 右部分少
minDistance = center - leftPart.get(0).x;
minIndex = 0;
for (int i = 1; i < leftPart.size(); i++) {
if (center - leftPart.get(0).x < minDistance) {
minDistance = center - leftPart.get(0).x;
minIndex = i;
}
}
rightPart.add(leftPart.remove(minIndex));
}
if (leftPart.get(0).y < leftPart.get(1).y) {
referencePoints[0] = leftPart.get(0);
referencePoints[3] = leftPart.get(1);
}
if (rightPart.get(0).y < rightPart.get(1).y) {
referencePoints[1] = rightPart.get(0);
referencePoints[2] = rightPart.get(1);
}
return referencePoints;
}
4、把点击划分到四个区域中,即左上,右上,右下,左下(效果还可以)
/**
* 把点击划分到四个区域中,即左上,右上,右下,左下
*
* @param points
* 逼近的点集
* @param referencePoints
* 四个参照点集(通过寻找最大轮廓,进行minAreaRect得到四个点[左上,右上,右下,左下])
*/
public static Map<String, List> pointsDivideArea(Point[] points, Point[] referencePoints) {
// px1 左上,px2左下,py1右上,py2右下
List<Point> px1 = new ArrayList<Point>(), px2 = new ArrayList<Point>(), py1 = new ArrayList<Point>(),
py2 = new ArrayList<Point>();
int thresold = 50;// 设置距离阀值
double distance = 0;
for (int i = 0; i < referencePoints.length; i++) {
for (int j = 0; j < points.length; j++) {
distance = Math.pow(referencePoints[i].x - points[j].x, 2)
+ Math.pow(referencePoints[i].y - points[j].y, 2);
if (distance < Math.pow(thresold, 2)) {
if (i == 0) {
px1.add(points[j]);
} else if (i == 1) {
py1.add(points[j]);
} else if (i == 2) {
py2.add(points[j]);
} else if (i == 3) {
px2.add(points[j]);
}
} else {
continue;
}
}
}
Map<String, List> map = new HashMap<String, List>();
map.put("px1", px1);
map.put("px2", px2);
map.put("py1", py1);
map.put("py2", py2);
return map;
}
5、根据矩形中,对角线最长,找到矩形的四个顶点坐标(效果不好)
/**
* 具体的寻找四个顶点的坐标
*
* @param map
* 四个点集域 即左上,右上,右下,左下
* @return
*/
public static Point[] specificFindFourPoint(Map<String, List> map) {
Point[] result = new Point[4];// [左上,右上,右下,左下]
List<Point> px1 = map.get("px1");// 左上
List<Point> px2 = map.get("px2");// 左下
List<Point> py1 = map.get("py1");// 右上
List<Point> py2 = map.get("py2");// 右下
System.out.println("px1.size() " + px1.size());
System.out.println("px2.size() " + px2.size());
System.out.println("py1.size() " + py1.size());
System.out.println("py2.size() " + py2.size());
double maxDistance = 0;
double tempDistance;
int i, j;
int p1 = 0, p2 = 0;// 记录点的下标
// 寻找左上,右下
for (i = 0; i < px1.size(); i++) {
for (j = 0; j < py2.size(); j++) {
tempDistance = Math.pow(px1.get(i).x - py2.get(j).x, 2) + Math.pow(px1.get(i).y - py2.get(j).y, 2);
if (tempDistance > maxDistance) {
maxDistance = tempDistance;
p1 = i;
p2 = j;
}
}
}
result[0] = px1.get(p1);
result[2] = py2.get(p2);
// 寻找左下,右上
maxDistance = 0;
for (i = 0; i < px2.size(); i++) {
for (j = 0; j < py1.size(); j++) {
tempDistance = Math.pow(px2.get(i).x - py1.get(j).x, 2) + Math.pow(px2.get(i).y - py1.get(j).y, 2);
if (tempDistance > maxDistance) {
maxDistance = tempDistance;
p1 = i;
p2 = j;
}
}
}
result[1] = py1.get(p2);
result[3] = px2.get(p1);
return result;
}
整合寻找四个顶点坐标函数
/**
* 寻找四个顶点的坐标 思路: 1、canny描边 2、寻找最大轮廓 3、对最大轮廓点集合逼近,得到轮廓的大致点集合
* 4、把点击划分到四个区域中,即左上,右上,左下,右下 5、根据矩形中,对角线最长,找到矩形的四个顶点坐标
*
* @param src
*/
public static Point[] findFourPoint(Mat src) {
// 1、canny描边
Mat cannyMat = canny(src);
// 2、寻找最大轮廓;3、对最大轮廓点集合逼近,得到轮廓的大致点集合
Point[] points = useApproxPolyDPFindPoints(cannyMat);
//在图像上画出逼近的点
Mat approxPolyMat = src.clone();
for( int i = 0; i < points.length ; i++) {
setPixel(approxPolyMat, (int)points[i].y, (int) points[i].x, 255);
}
saveImg(approxPolyMat, "C:/Users/admin/Desktop/opencv/open/q/x11-approxPolyMat.jpg");
// 获取参照点集
Point[] referencePoints = findReferencePoint(cannyMat);
// 4、把点击划分到四个区域中,即左上,右上,左下,右下(效果还可以)
Map<String, List> map = pointsDivideArea(points, referencePoints);
// 画出标记四个区域中的点集
Mat areaMat = src.clone();
List<Point> px1 = map.get("px1");// 左上
List<Point> px2 = map.get("px2");// 左下
List<Point> py1 = map.get("py1");// 右上
List<Point> py2 = map.get("py2");// 右下
for (int i = 0; i < px1.size(); i++) {
setPixel(areaMat, (int) px1.get(i).y, (int) px1.get(i).x, 255);
}
for (int i = 0; i < px2.size(); i++) {
setPixel(areaMat, (int) px2.get(i).y, (int) px2.get(i).x, 255);
}
for (int i = 0; i < py1.size(); i++) {
setPixel(areaMat, (int) py1.get(i).y, (int) py1.get(i).x, 255);
}
for (int i = 0; i < py2.size(); i++) {
setPixel(areaMat, (int) py2.get(i).y, (int) py2.get(i).x, 255);
}
saveImg(areaMat, "C:/Users/admin/Desktop/opencv/open/q/x11-pointsDivideArea.jpg");
// 5、根据矩形中,对角线最长,找到矩形的四个顶点坐标(效果不好)
Point[] result = specificFindFourPoint(map);
return result;
}
透视变换,矫正图像
/**
* 透视变换,矫正图像 思路: 1、寻找图像的四个顶点的坐标(重要) 思路: 1、canny描边 2、寻找最大轮廓
* 3、对最大轮廓点集合逼近,得到轮廓的大致点集合 4、把点击划分到四个区域中,即左上,右上,左下,右下 5、根据矩形中,对角线最长,找到矩形的四个顶点坐标
* 2、根据输入和输出点获得图像透视变换的矩阵 3、透视变换
*
* @param src
*/
public static Mat warpPerspective(Mat src) {
// 灰度话
src = HandleImgUtils.gray(src);
// 找到四个点
Point[] points = HandleImgUtils.findFourPoint(src);
// Canny
Mat cannyMat = HandleImgUtils.canny(src);
// 寻找最大矩形
RotatedRect rect = HandleImgUtils.findMaxRect(cannyMat);
// 点的顺序[左上 ,右上 ,右下 ,左下]
List<Point> listSrcs = java.util.Arrays.asList(points[0], points[1], points[2], points[3]);
Mat srcPoints = Converters.vector_Point_to_Mat(listSrcs, CvType.CV_32F);
Rect r = rect.boundingRect();
r.x = Math.abs(r.x);
r.y = Math.abs(r.y);
List<Point> listDsts = java.util.Arrays.asList(new Point(r.x, r.y), new Point(r.x + r.width, r.y),
new Point(r.x + r.width, r.y + r.height), new Point(r.x, r.y + r.height));
System.out.println(r.x + "," + r.y);
Mat dstPoints = Converters.vector_Point_to_Mat(listDsts, CvType.CV_32F);
Mat perspectiveMmat = Imgproc.getPerspectiveTransform(srcPoints, dstPoints);
Mat dst = new Mat();
Imgproc.warpPerspective(src, dst, perspectiveMmat, src.size(), Imgproc.INTER_LINEAR + Imgproc.WARP_INVERSE_MAP,
1, new Scalar(0));
return dst;
}
测试函数
/**
* 测试透视变换
*/
public void testWarpPerspective() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src = HandleImgUtils.matFactory("C:/Users/admin/Desktop/opencv/open/q/x10.jpg");
src = HandleImgUtils.warpPerspective(src);
HandleImgUtils.saveImg(src, "C:/Users/admin/Desktop/opencv/open/q/x10-testWarpPerspective.jpg");
}
本项目所有代码地址:https://github.com/YLDarren/opencvHandleImg
觉得写的不错话,还是希望能给个Star的
以上是关于我们学校要弄商务礼仪大赛,请哪位好心人帮忙给一点关于商务礼仪的题库,我们要先笔试······的主要内容,如果未能解决你的问题,请参考以下文章
哪位好心人可以给我提供一份teamviewer 14无限改id工具