我们学校要弄商务礼仪大赛,请哪位好心人帮忙给一点关于商务礼仪的题库,我们要先笔试······

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—透视变换矫正图像

很多时候我们拍摄的照片都会产生一点畸变的,就像下面的这张图

Java基于opencv—透视变换矫正图像

虽然不是很明显,但还是有一点畸变的,而我们要做的就是把它变成下面的这张图

Java基于opencv—透视变换矫正图像

效果看起来并不是很好,主要是四个顶点找的不准确,会有一些偏差,而且矫正后产生的目标图是倒着的,哪位好心人给说说为啥

因为我也没有测试畸变很大的图像,也不能保证方法适用于每个图像,这里仅提供我的思路供大家参考。

思路:

我们最重要的就是找到图像的四个顶点,有利用hough直线,求直线交点确定四个顶点,有采用寻找轮廓确定四个顶点等等;今天我提供的思路,也是采用寻找轮廓的方法,用approxPolyDP函数,对图像轮廓点进行多边形拟合,可以得到大概的一个这样的图

Java基于opencv—透视变换矫正图像

可以看到图像的四个顶点处,都有小白点。接下来我们要做的就是把这些点归类,即划分出四个区域[左上,右上,右下,左下];我采用的是利用opencv的寻找轮廓,得到最大轮廓,然后生成最小外接矩形,确定四个顶点的大致位置;然后设置一个阀值,与上图中的点集合求距离,大于阀值的舍弃,小于的保留,可以得到如下的图像

Java基于opencv—透视变换矫正图像

这样所有的点集都落到了四个区域,利用矩形中,对角线距离最大,确定四个顶点的位置,发现效果并不是很好,如下图

Java基于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工具

哪位好心人有JetBrains PhpStorm?

哪位好心人能帮我把这段DNA序列转变成蛋白质序列?

哪位好心,教教我这初初初级小白如何使用用PyCharm写代码

wamp无法启动mysql服务,请哪位大师帮忙解决一下

Java基于opencv—透视变换矫正图像