数据专栏

智能大数据搬运工,你想要的我们都有

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

「深度学习福利」大神带你进阶工程师,立即查看>>>
FormSuite for Structured Forms 是结构化的表单处理SDK和字符识别工具套包,包括表单处理工具 FormFix 和字符识别工具 SmartZone 。所有表格处理控件被设计为可以通过内存到内存的数据传输模式进行相互沟通。本文收集了一些 FormSuite for Structured Forms 常见问题及解答供大家学习讨论。
一、如果我的表单匹配不正确该怎么办
FormSuite 的各种性能表现没有确定的答案,因为它必须使用探索式匹配方法,这些方法不一定为每个表单集提供相同的结果。 ScanFix 和 FormFix 提供了多种工具来帮助优化您的表单集。以下是解决一些常见案例的一些提示: 未找到匹配项:ScanFix提供了有助于匹配的去除斑点、去歪斜和二值化等方法。降低 FormFix 中的最小匹配可信度也可能有助于匹配,但可能会引入其他错误。 表单页面匹配不正确:在这种情况下,请尝试删除可能会导致两种不同的表单看起来相似的项目,例如边框、斑点和线条。 表单被颠倒或旋转匹配:如果您知道表单始终是正确的,您可以禁用FormFix IdentificaitonProcessor的“IdentifyRotated”属性检查旋转匹配的功能。
建议您在 FormSuite 附带的 FormAssist 演示程序中调整您的设置。
二、在IIS上使用许可证开发工具包时,为什么会出现“80040154 Class Not Registered”错误
如果您收到“未注册的80040154类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))”。并且尝试在通过IIS创建的网站上使用LDK时出错,可能是因为平台冲突。要解决此问题,请尝试检查(或直接取消选中)与网站相关联应用程序池的“启用32位应用程序”。
三、为什么我的许可证停止工作
许可证停止工作有几个原因。最常见的是MAC地址发生变化(在虚拟机上,或在重大硬件更改后)。此外,如果在许可某计算机时没有可用的许可证,则可以通过服务器授权程序将临时的两周许可证放在计算机上。
四、在获得机器许可后,为什么还会弹出“Accusoft Licensing”
可能的原因有: 您已使用“runtime/deployment”许可证许可您的计算机,并且您没有在代码中调用SetSolutionName和SetSolutionKey方法。默认情况下, Accusoft 产品将在此路径中查找注册表中的许可证:HKEY_LOCAL_MACHINE\SOFTWARE\Accusoft\Licensing\Accusoft。但是,对于运行时许可证,它们存储在HKEY_LOCAL_MACHINE\SOFTWARE\Accusoft\Licensing\YourSolutionName。因此,当您调用SetSolutionName时,它会告诉您的应用程序查找正确的目录以查找运行时许可证。 您未在计算机上成功安装许可证,并且安装的临时许可证已过期。您需要运行SLU或再次尝试使用LDK。如果这不起作用,请尝试在脱机模式下许可您的计算机。 您正在尝试使用开发许可证,并且在代码中调用SetSolutionName和SetSolutionKey。在部署应用程序和使用部署许可证时,只应在代码中调用SetSolutionName和SetSolutionKey 。 您输入的许可证信息可能有误。检查客户门户以确保您已获得SetSolutionKey和SetSolutionName的正确参数值。
五、为什么当我尝试运行SLU时,得到“组件COMDLG32.OCX或其中一个依赖项未正确注册”的错误
如果计算机未注册COMDLG32.OCX文件,则会发生此错误。要解决此问题,请执行以下操作: 如果目标计算机上没有,则安装comdlg.ocx依赖项。如果系统上没有comdlg.ocx,则需要从具有它的系统中获取。 将文件放在C:\ Windows \ System32文件夹中(如果是64位计算机则C:\ Windows \ SysWOW64)。 通过regsvr32.exe命令注册DLL。 当看到成功消息后才能继续进行许可安装。
查看原文出处请点击 这里 。
多媒体
2018-12-21 17:08:00
「深度学习福利」大神带你进阶工程师,立即查看>>> DESCRIBE rtsp://119.3.79.46:554/live/32000000000000000101?streamtype=0&devtype=3&starttime=no&endtime=no×tamp=20181220195209&timeout=30&encrypt=dae87a1a2f4aa7d4c7bbbc1089e31443 RTSP/1.0 CSeq: 2 Accept: application/sdp User-Agent: StreamClient RTSP/1.0 200 OK CSeq: 2 Session: 21 Date: Thu Dec 20 11:52:09 2018 GMT Server: AllCam adapter v1.0.0.0 Content-Length: 242 Content-Type: application/sdp v=0 o=vds 0 0 IN IP4 vds.allcam.com.cn s=allcamera media server c=IN IP4 vds.allcam.com.cn t=0 0 m=video 0 RTP/AVP 98 99 a=rtpmap:98 H264/90000 a=rtpmap:99 H265/90000 m=audio 0 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 SETUP rtsp://119.3.79.46:554/live/32000000000000000101?streamtype=0&devtype=3&starttime=no&endtime=no×tamp=20181220195209&timeout=30&encrypt=dae87a1a2f4aa7d4c7bbbc1089e31443/ RTSP/1.0 CSeq: 3 Transport: RTP/AVP/TCP;unicast;interleaved=0-1 User-Agent: StreamClient RTSP/1.0 200 OK CSeq: 3 Session: 21 Date: Thu Dec 20 11:52:09 2018 GMT Server: AllCam adapter v1.0.0.0 Transport: RTP/AVP/TCP;unicast;interleaved=0-1 SETUP rtsp://119.3.79.46:554/live/32000000000000000101?streamtype=0&devtype=3&starttime=no&endtime=no×tamp=20181220195209&timeout=30&encrypt=dae87a1a2f4aa7d4c7bbbc1089e31443/ RTSP/1.0 CSeq: 4 Transport: RTP/AVP/TCP;unicast;interleaved=2-3 Session: 21 User-Agent: StreamClient RTSP/1.0 200 OK CSeq: 4 Session: 21 Date: Thu Dec 20 11:52:09 2018 GMT Server: AllCam adapter v1.0.0.0 Transport: RTP/AVP/TCP;unicast;interleaved=2-3 PLAY rtsp://119.3.79.46:554/live/32000000000000000101?streamtype=0&devtype=3&starttime=no&endtime=no×tamp=20181220195209&timeout=30&encrypt=dae87a1a2f4aa7d4c7bbbc1089e31443 RTSP/1.0 CSeq: 5 Session: 21 Range: npt=0.000- User-Agent: StreamClient RTSP/1.0 200 OK CSeq: 5 Session: 21 Date: Thu Dec 20 11:52:09 2018 GMT Server: AllCam adapter v1.0.0.0 GET_PARAMETER rtsp://119.3.79.46:554/live/32000000000000000101?streamtype=0&devtype=3&starttime=no&endtime=no×tamp=20181220195209&timeout=30&encrypt=dae87a1a2f4aa7d4c7bbbc1089e31443 RTSP/1.0 CSeq: 6 Session: 21 User-Agent: StreamClient Content-Length: 2 RTSP/1.0 200 OK CSeq: 6 Session: 21 Date: Thu Dec 20 11:52:09 2018 GMT Server: AllCam adapter v1.0.0.0 $....b..........|.."o.........M..M..l..\......,].D/c..........MS.:..8w.9-2.u.!.[..7.z.6.u#T.TQ;).#.....(.,..8.... .3..ki..e...&.:.&P`.>.c &w4.X.....]..p\8JR.r..n[.V.........JF....iPm.t....!K..h.......[.~....x...H.0=UK. .iG..ay..}..U..o.z...'...,XS... [.. .`...I.va......E........[x..~+P............w/...OE.ja...p...w..]....%i.' ..,|..b..*..-..(4.h..pBf7\......c7.....\......M....}...T.b...Fo.....{......,.hu.D.......p\H.:...E...$.=.T..]1..\6T4".m.x..qU.vu%.p...eq....6..O c.V!f.Y..<'.Hl......Rn5E.<(.x....+..)..o.IP..i....kqz.3...M.......x...S.. .. ...Y..r....^.......1>"..... .TR..1./..f....?*.?.E.$.p.Yq......jTWe?I. .xR.... .............a.Bo.c....d...$.K _*.......F..gS.pS......Q_.........zh...X....uc....92.I...)|`(]1H]..I.!U.`....h..D+X. v5lz..FVp/.5r&...}Ar.;.S.,R....c.....m...+.hB...|?..a.V......;x..*......P9.^lXg.v.....*.0'.X85.s... .!N.q.akP .\Q...w.{.L.C..........s YI.[.z.;.l%.B8*..X'H.....9...E..........Zh=d.3..VA...'l.[.Q.l=..K`:3.g..h.../.].~...Uu~..=......Ts :..L.M..P..g.Iv..5.k...u...../..\...B.3l..B.F)r.z##5.&..B&.......H..R.....yM8..H....Z..l.$.3.N..2f h.....Z$.a|.....9@..$...............|A.x.l..E. ..`......'.6.......K1...2(.....lFj.CD.&%.].~.@b.v#...P*L.h....uDO.kd.....f..P.....{.9F..... D'7.L5Y.H..HyOt%....*?.2..... ....._.$.."..uo..I?b.....:...h.SMJ...?\..I-.@....V...Z.^...^..... |...o..S%...............k..V..tk..a.m.17..E..r`.F.?F7...........N.{.U.^..o.EK......(K.w.H.v+ ..Q.X.....J.=,U?.( SH.X1....9....._..8.^|X`.e..X2....A.'.....).6.c'. .C....q.-..j..q./@.....3zG....R.\..`0l.7X.G.:O....:........O..o.t.E....M.z.r$...............gM......n.... ..~@.$...............h.<.$....b..........|.....X...........?B..W--Z..B.....T9.H.|.aE..Y.q../x...X.t.ruG^..4.*..].....Up-e_.Y...v.e....o}...5.{.2..(Tq.k.?.%.&.O J1k..$.......+.>W.&....9q.wY.R/....!\....+....w..J1..sk.A9......X...........R..B..F.t.7......W.$'..&y......B.V83c0]...fH.h.:............B..Dn.Ry., .E.1.....L...4....o.c....Kw.V..R.1.{)..\.N.......V......5_......O..\.M.y&..4..!=r>..?.R..:......;.M.Mdd.....Zu.....Zf;f...BP..E ...m%.w...?e`.Z...p}HA}."Y...r...oq.c'...q.}wM.ZR._x...o.a..3l.........|.......op..$.....KS:B....K_.^?t..n\./Fk;8..Sp-.dFZ....~J. ..i....Cn..q...A7..2..Q....v2.^.. ....].......z.t..6.U.^[ _;..z.......J...;..GO..f9..mhi(..*.c.......F.........Qs.Zl.B..C~v......Ba.>...P".,......O.1oz....T....pU..Y%. =.|.. ....F/.Z.{Gx...6. V...$.<...ya}...nj.....:.yaT']..t.....~.E..#...../...P.]C...7;..yV.T...f..m.g..&coW.....T.......'...S....\L....@.r8.....#..d.).D4..Z.V....9U....*..7~m-.?z ....ZE...w.=....{.."...K..J]...f..<.&..."....:\T....)&.T... .[......{E./..y!$.v.g.p.kn.<....oF...J..-6.b.v.?$...'.).,.....dF.P}..iE.d.TI....m......w..X.C..J6(.. .J....Ox......u3....Z...........w[..a2./=.`7.....&g.6.K....QiZju...."O..'.x...@by.....]..C..PO3...S..&...u..l....,......^.v........<..`..(..^?.....O+T.q......y8i...q... ........iFz..,..Q.......F+.#.NG.....kKr.W]$.w...:f..j..i.t....o.T.7.3..}h/.....O.n.#..!D... WT....!&...<..).. ..x.%...X...8.c.Ml. N..T".M<.......g-.....y R....C.......G..A. '... .m.M.k..Ot"}.!w.......hP.m.......9L.. ....}..F......cA\..7....3............,...|;lp....@..0Ho0L..5........`I.p.ym.r.{.Y..b..f.@..2%...> H.}..~..~.2..'.....{fB5...)r:....z...o.9.[.....6.. .,............["......>..D=..V_.9..~A..".^%Y.(R<........bk1......B......=.~..2r....%.y.8s....ocI.L.h..t..H*...%<].V...g..G.(........u..r....8C..I..1...S ..[9.. .NQ.].*o./.d....'.@A....{.....|%.p{s"u...].M.4 ..#.pd'.yXoA..O.s.#...?^....F..M......<. ......S.. ..%.L..U#9......vM./iU.Wb .;.....o....e...b.@^.Mo.H..v.}.....&}...m1p."V^....K.~....._.}...3......e:x.<..D..s.0..}`,....[... ?...0.q...Pf^..."q2.&...@\..U.x.<3Hr..fcd./t.b_..O{..$..r2h.......".p......\...O{.n..2.<.G)..D..|....Fh.s.j:.......&:....`..]...iT..m...0.n....pK9...?..........).. .,.....}..27R.a../...=..!b>.3......P.P...q#.'"ap...X.d(.c...2<.I. ...;....U(K.c`+.u....8....x.L......ui..e.*.P.....d.D...).....d.....v..k......G...&S:6....1.v.Z..|........i.0........w...s.ak %M.'.c.?+.....r.O39...G64.'].|O...A._...E\K.$....b..........|.T.m.Z...".......O...~.L.K..o..p..p../..J.tB\CS......p.]k...l..,.em...ej8s....4.r.y>x~.n.........-.yj...RL@p..v6. .1 -.[......E.;t t.k.,..!..y...".\.. .hbu.M|4!..V.e.)..?..4.......D.b.3:..`.\..w....)A..L....D..I..F..uP.I...="o.H9.u4..J....@%.s.~.t._o...w.*C.xn.....yE..O......o.u.w.4..#.5..=..{,.....%.....#.G.w.KZ).O..@.....E..|...?..0.H.2...;.^..?.L.N.0....< ....gv.....G' ....w()...H......K.o|..st.=..js.#... Z.......L....`.L.\f....C....1'[....;V...V..I.w&...T.b..+..&.}...C....#W.^PQ...D.....}5.A.!%..E.....G\+.... ....(..Juz.9..M.......\B5.]m...:q.....9X.Ik..F....b6O ...VI..]8....SJe...h.y......k..~..0ot6.<{.j..|WVo......../.)..{X#...../......e1.jDJq...q.W............w.7..k7.....c\BE...C...8.xo..G.;$c..MV..c ..........r!TB... ..'2..E.Gx3..y..\.c....?.e..01.../...C.YKsb.....Z...)..v.g...6...w....'.......6.\..57.Q.M2.........E.a...9x..... Z. .%. .-f...sq.....yo...i...1.1.y.......0.W.F)..T$..f!f..V.|...;.-&.E..[.....4........).XH..|Xd.A*.}...'?...D.5 .8P">..(..*.e..K..C..;...C_........1l...xG.;7......6P.Sf.G..-.a.M Ik'.....H...A3....9..T....f..YX........7'....j..w..`..({...4.f.!......_ ...&.&d..{.....J..........o..Y....K! .gg.......=.!p`K. ..G.&kG.N.. '.75'.= .......;>............M....$...?e.w[o......c.......t.._....V.k:|..o.V.s..~..c>.....8."g[...n.H.I.;.l.......E..lC..a...D....u9j..+c.NBY.aU.BOA_.T..A...z.......~....zFc..I..._...b-.E..x._.\...,.1/...1.q.........!?.S..'i:p..$....b..........|..q.!S.W|l....z..>. .' I..'..G.........\..2....r.C.......>...TV...?$UXC..' G..gJs8...n..........O..........^_..DG.)./E \..~s#.....!....HRv..<..,M.9Zo..M.g.+..|o<...l..r...}...|z... ...PP.sHk8...........m...!.g.0.P.c....w.5l b.[d&w......E8 .!.%....D.W]w......&&.TI..[-.j.gj8...7..3j&.}........{...L>..;.._.z4..b.....0\(...$. xO9..;..].v....-.vr.N. nxt.......`.yu.....HX\&....\.f....N.U....B...J.=... ...6.:....)1.....i.j....i.7..W.........C'... a+.@..i?..J{..o?.......{......a............N$l.H.......e@p?.4?......Y..b.......N9e..A..MU....G:...X..Qbv..".B....R..~.Sn.....xZ.4...<$iq...^.z..l\..{..0.....<&z,...6...h.......}.~p9J+.....Qb%..HI.@..@@*.r.....G_.....W..M)&...A.x..a.n"....n.........}...+.B1.,......S......Pw.9s).C.h+H...@.H"Yk..z....q.y.d...4..j......<.a.`...........g...i.,...E..K.#.x..J..].@B....P...*..3.I.f.]!........M.Ixf..b.{..V9j..~...5..r.{..p..&..._..k]...h.:D...M..].cg.?..p../...P"b8%..9...W...!.....vph.Q..H...d...>.j...Yc..x...3}H...q.D>.T.+.....-f~.wec.. .Z.......v1C.U@........0%.8!.......4*.x.&.....dP......bgl..../.........G.....!. ...nn.....b^..\...=...|..D...Y8'?..n...>R..Q ?.~gJ/.:.......y..(.m3..m...1...P..g!.....6#.....A..c..b..........5l...n.|..........g..9.a.........rfgaY..hS...^.-.8..&#..?f@..".?.....~.$....b. ........|.....F l..Z......2i.:.@.f.0.Ze.[.Lc d.../....:.O..F*..&.\9 o.6...\...b..f.s. J.)._.....$=.[.FuDw.I..4.h.|..p......\.Z......]>.^...>.D..";k5QBc I#_.....%....(f3.h.*(1..B*......g.....f.Lv.>.O.M...... ....j}D....s....D.8......Y....M.ee.C..v...T.....L.............-....<.x7?........{].7.........92.+..0(...?!.......c.1H..tnOP;./..oa\qq~....gP.O.|.........u..+..x .C........WZ.I.AN..~L..G.I%q.^..........`.T.|.[ZO.qR....,.....#.].>KO.. .M....R..a..=Dz..$.....;w.8%{{...j$0.........#.w5.......{}.D......J..Bk{.....K.LvIdD?IC.H..B.V.`..d...i...T.5.Xl.f....J.A.......N6b!..1.a..'0C.r.y...c........F:.j.....N...j..>.....=s.H ....6$....R......>...7.......(.....m.<.[.....`.}.tT.].q+..d.(v.\?O.4..!...-....^./.a..17.H6...5...`..d#..&.&.+.-.....s..d"Aepl}.@%.|.H.....:..&#U._x-..'.D.Y......5.E.....d3.....s3....>$.+.r...........c._....|...o..ce....d...;_r.T. ...i.....K:.......M..y.........wx..;....E.f).W....I<"..._&...C|..nC..YX...#"...q..lX6..a 2.D......L.Lj.. .!..R.....r.5.V..q.w.. ..7.j..`.....+...U.a. z..lr..v...m...i.:......V....~./."j...K.H..,u P.w4.Nh,..&...X....jB.. ^TM..w.."h..wG ..3..?...Y7.,..K.kw..^..3Ja...vv.\.n{k.x.F.!....Z.y.>tb.....c.M.....~.f.6F...DKD6.$....b. ........|...p.N.....M.D..[)U.......nP.s.M......{....J.qW..=w{......" Z.u"..|......^......l.opj#:u.S...|..6g...5P._....7.n#m]. .k..!1T....nA.......s.... ...*..l.<......LLvt....<.d.7..@..r.g2..!. .?, .8Bz ..+.aw.... 6(N~.....z ).W.....T0..{'..P..^...0..el V............4q.S.0..2.7p;...;.a|.T...Y...3..fz.....%..A.s?.^..l7..0(.......... .?.>$....p....T.,.....-).TB.'.. m.o.;..@...hx..X........LtP'%..h.|.vEZp ",.5...T....h..D.!.......>./........+b...b...=L6.0.#...[.<.JH....+.......$.C....f~....".3...r.....R(.&.j5...z[.~W.*..,...bG| ...R.y.W..n6.3.....: .:|K.~a.q7.....u%.....^.?.+..L.K.....2..-...=.;X,L@\.W. .(9f..".S.x.Y>*..@.f..%08...M.6.......p.......L6.>d3....b..3....*......$...u...&mw.BM...uom.P.....*(.h.{oA.......Mg8.]r...O.1#...........y."?..I....|..$3....8.+...I&@..~.$..ZmI..2.....7...e-..b.A./........p...h.........DB.......O. ......'.M.7R...Xe..[-.".M....w......k..8C....\./..b.4L.....7..m..i+zp...p...T.Q.......x...@..Q...M.;......%....7..~.F.=.=..?.'.v. ..p....8..v.c.m...jx..K.../Vz)z~?.9)......ML.!...3.E.LT.*.. . ..d...5n.-..}...?.2....Pg..@U...9.....^....c Exv.]...b"sh..t./XM.....O....i...(.G......X!...Q.... g@..,^.U.L ..o.FgB.>.`..|...:...91.#?)....)..x........Q[.......@.]......V..b....-....G...>.w{d.e..O.'.KW.j....@..T.....]Z.J]..vw..%..3..n<..L......C.....E....aA..!..J^..8_...<.+:f..FxQ ..v.\S^~.q0G.#S...D@.J .heT~].).3&.......'........e.....9.... ......}..\..#..&.!....h.~..d#.7..8R."...v.].d.|......G........t.....".U....D..........@Z..N.Y.Sm=..P.t!$..M|...v..........x....U._..[X.,.....r.(...q..<..#.!..o.u...+.,9.5.....Y.E.........".}...j.M~r.Yv.L8.H.....s4.@3;.$...w....0../.%....?...y_,.s./.pL.H)....}7U..-../<.m `.J.~...U.3...'.}...m]..W..-_...;{.".B..Nxi.G...........r.j..{fb...1 9).+.p..OObU..J...........}...R(^..$X..yC...$...O...<...Z..`.Ky.Z.} ...".v...x%g.!....6....i..\.X..t..h...["._8.)...X#.{.!.u.2.NC....FVv...x.)..._B. .8.!;r..R.G.B......m..5H*...3.;....p......k........:.2.+..2.N~R:'..p....bF.......F|.W.#)K._..v...D..g...4 N.........0`...F^.;.h....@..L..}..|..E..,e....._c..#.J.:/!..;......)..._<.X(.b/'L. ..4...-@......./.......0afe.5J.Mkf...e?..r4>G.|..C......6X.4..B...b.d....@..3W `.t..&.2.GC-..T..(H.....B......\..;.{.)....M.'.J=or..Y.. ...P..).....B..4.C?S..t... .$....b..........|..1...G+..Q>.&.+V.n.%3V.g.J...H.I|2.E2.IT....... .("a=;..*..m'+.f.[@.tmD+Y`p76....... ..1...c.%...OL.2..N..N.B.P.cV.z.........{.m..B.]......Ko.....P.G.z..r... ......{j..0{6...x.bv.R).x.`....\.*..[O1...|8(..N.........Ar4.K....A."wO"...y..%.......s.... ...........M.H.Qwd...)..]....C..qO.q.~...OF...d.3..w....'./2B.......CW....m....".o.............xd.....3..mz.....uM.. l.u.=.....y...!....hGqq.QF...7.1.....CE.yt..2...=..) .Q3..`s..=...=X..q.:..(k..0.D...... Vj%C51[7.D.,{g]...{..l.g?..!...b}.UA..c........MOo.X3...........z.~y}(.&....9fV.:..e...g.......F..#?.. .....#piE...z...MjH.... =)O.'.....Q. Kb.t...[...*.j.........`Aq|...k` .........] .."aKn....pr...mF...B;..j.....EB.....<...!..[VW._....t.qw....GH.[.>.#t4.&.3w.g.4p\:h...|8.|.Gpv.F.. ........|..S.[....k.$w......1+..,...Z...|..h..>}.Z.w..~.U.JA.]g..9.C.:.W'...O.Os..~ X]..O,.r?..R}.YR>.....I...A........d..9..+.g.i.ve.N......e=....}y..|......wq.b9.t.$...M../..Z....[f....I...M..tf.....A.L ....C.Y@.Ai..K.`.q}.C..EV.....W....*.|..9...&.K....6....=...h..F..@C6.z.e..{M...hrm.F|..\.p..TV..V.D..k.B...&`....)sA.u.rE.+.?.._1v..T......N....X..p..X..C..f=....Kp..wL........-..a.u...@._X....bX...L;.M..` ...P..QF....'....WP.....5....c.....z+.N...jq:...J..z.]q.?.}T..8.$ew.U. .?..T1G..?...g.'IIC.[...O.=.X.$+yB.k?.qE..-.\..}..^... .....r}.{..N..zm~.....1......KXA.U.81.........(.=$8.x...W@.....7.c9&.JDBY's...o.O...~d... \......v...U.or..U..Zc. .e.6.T..$....b. ........|..8..K........R.....Y...N.I..?a.2....IQ..y...a...R.t4....m%.;../}.g..m; .keJ.H.EB..D.;..oI.Bp.e..g..pVNH...)n....ayJ..b...7.......#..^...>(^..H..d@A^'...'.I...r.}_...64.......:r...w..@....6..Nk-..:{YLm .... |...V .9..v.2j.\...^'.......CD..og..L.............Oe.T%jM..om...?B....@.xZ.@.N...L..3..70.,.4p.w....I*..........Sb....D.f......../=..Y.CPQD.H...fj6 8'...f..wi.:n..=}}..I;..3...N.eKK.c...l.......B..y['".....A3.,.P.L..{,.4...,.../...w7#._O...>....or.'.....y`$..P~...:Q..x...w...@L...9:.3. ....Gp.V.. ...|Q..'=.(R..v.x...N_].j....BV..S.../......50`..k).....E...d.n.\..#.(i+.`.vL.S.5...E.W.T......ld..(...e(iUdK......'.'......3#...j*E..E/~.H.. ..N.?:>...x ..5.eAQ.|.JGd.........h..T...*........R.....g1lL.C./..&.....I...C.....w}.;......a.....uN........{r. z....WkL....$}c....wD.Z.z.+3....g2........ .b.P.....jJe.......F(...g0.h.E|.!......2 ^..P&.h),.Z..A{>.......T[.{..d^,^..{..LWJ.=f...(...j?.N..r..%..##?.n.!&e..D..3}.e!`...Ri8.].Rr..*....8.c..6$..~H.l..D...K....x...W.....k...W~.....3.T...& .....N..."OK..oH.....Y..*.k.....Z[Ne..@.*.e...m..x.g.{...........6. .SJ.....K.....f.QB.ZD..).r@..Ok.>..[...zR......CZ/.n.G.s.O......R|Z..3.....A......{.f..#!9....}...Q.C...-;..............W1.w.{W.s3........P.v....Ft.:...$....b..........|.(....%..QT.i.;..5..R.!].m. .}m..v.....y.y0\Y.`...U.@..........:.. ..:........_Yj....m..c.....8J.....c.#:. ...z.X..g. .-..#.t..&Jc.r-......h....N............*.<..S....zmMlH,....<#....s.0..q......PB.....$O..^3 5.;|.J. 3...NH...8.IRZ.&.O...s.&V06..O..n.Q..!..?..8.r.p..F.E.B........m./.A..b.# 8!E....F.:j.a.>zt3._U.+.Y.l.Mc.(`J..u. Q.......N#..."~?.e...q.J..g@...>m.....e]h.9...g...q.D.Q_`8z.)......9}.fG...x.j.G...TB..I..fUU..1..::H.......;c.......V.:.$ .....N.Z...~.........L..,H%...m....1.R..R.Z..$ .q(....a..m..........oY.p...GG.p... ...<9.....L.V.E..e+n..K+.... 6..fb...x....=+y..X.B.M...)..`.*jp%=.z|..q...X..K.......$...:._2.-2(;NOF.....&..8..Q.._.L..NU.o.0....O....."u...<....y ...{&hJ(.Q..]!:Z>KE......$R.W...kP..X....)....w..%..!2f......l6..?.a....l...Mp[.\.O.|u.J...g....l~.1.$*..6..2&.$!0.O..S..?..t]^1.V.*N....a .T?V...dIw...$.....Mi..."f.&.l@..K..<.H.m.[....|?KjBz.Z4...........N.v....{....'..y!q....%F......9.FcKe ..?.(.~..d......&h....t.O...gQc.. x..W&.S..8.J...|5O<.i......v):...............q..s.x....."..6..el...MZ?.0.L....zl... ...Q..e.Y.....B.....! .....s.`. ...|X z"...5J".?F-9mJPt[YS]{...Q.K.7..)s..1....8.8....N.;C..Q<.D../..V.........".x...i..J.m9._c.Y..DV.b.jx.ZO-...*...F.1...-..... ......#..J!..f?....;........c.u7.]UYM......Pi\.}'O.b..*-.[...SHC.6......! [.....A.. ...:.kH.!.OS+.cL.....B ..#O.a.........E......k.X.....gJ-/.._x9.[.......H....C.2s..zz..5.....&hJg..?.S,1.w... p$....b..........|.........."2O[.....s.I4..jnc.-^...Z1.O.....r...b......vz./....D.Q.K........z<.T.D..F.gh...A.....N~.....x....;n..x.....7........f+#.....zW...~...0...jp./.$.1.x9.\.*Fy.^.jym...:.....&8 .........\_.9.C.[G..i.n}..6\..a;.%#./.u..b?.x.....H.....+.c......>+1.:p.C)..C.:.d...g,.....F.@.K.V..T.._..a...O|....y........P...x....L......#. A.BK.X9iI.SJ...E....Rg...o5.+..|&......p.4U.*.U4....;g {...i...g...B.A?.,.8.0...yoQ." ......[....._...mrZO...].r1E.I.A..,.G....".....ug".pw.e...]..z2.8...~&......B...../.L.dN..b=.j..P./.{*...v..$..`...f..(........]D....V.J]E..;...;....^.z....R.....8....qv8...B..&gP....7|.'.....uP.b. ...A....)..|.......h...Z.. ..*w].x.Gg..g.7j#.4..3..jpA...e..!..V..{...&.@.Nj.k+d.l.uQ....T{.>.b.o.......#.1}.. %i....-.......],.^......#P...$.!...5..........xp}...I..(W...z..2&."...C.&.g...r..^....v.9>...C.z....yj.... ......,`.[..F.....F...L\..c........*U\........@..$2.. I..4d.z,.5.>.".!......v.../..P...F.......".:.....L.Zx..OG.........\.p..!J{yi..(.0iv9...3/-.d.D.M..&.0.I......?..".....>.2 _.(H....'..............,y.t........:Be....eCUi...W..Tw.........7;.+..o.c.....&t....J....y.....ems9lB =.p.............S..Zh..H..`.6.... sh.0....d.z..*...JYs.{ke8.m).......x~...,..... /...{.... g}0.!...Bn<..7...fP=......T.l..Sk.R..1.t).....1.@...<.|.U#*.D........H>...Y|_qI.)P.?....p..f.Pn.4,...w-7/W=W.(.........Q.A;...QNJ....^.;6_..$@..PN. .P..[.W..^.."t$....b..........|..M...X..uj..J.QSI.+......].&RS.VE...V.cj.b....].%.7...,.~........Y....N..=....eW.9k....sp.;..$L...-7/.z!.U.......*.B.p..-.......p..t.`K.s.&...2.....m`Ac...^Q.]f_#.*.H.....tgO...m..E.k8.V....W...*.........2......t ....nZ..JD1s.l.*..@..>.?G.%.6...*.Q.......>.S....qx...}.. H.)....L.r....i.......3..y......G.f..U/)..........].L2.d6........j....l)...a..TiH..,.J...F.?M..I1.......R..<..G ..l@..`.........Q..._.&..,..5.&..T.'..p.a.,. .K.BQ...g.\.Y.z].z....t...A...,.v/..t...."...........1..9...Y ....VJ:g4#y...q. i.....#<@.o..l.j.".Zg]..f.X....h.`.?.I./lKwJ....\4.fv..tT...P5%...yZ...Y.ND..L.]u}...N..O........YsPa.Ga.:.^..|.#.....\........Nx...,AC........OD.'xVi;...z...M...... ..........v...C....5(hM7..,.].m..y.<0(y..b..K..2...h5r.T....Q.....r[..o.K-..$z..`.[L.zs...A......f.Vi@.....*...S....L..,f...r....-..4p.B.a...q..p.I.b.i..E...W...........t.9 .M.4..i.e.p/.D7....[...X/s......~...|,^.....6zh@p{..l..^x..T.....x....W..W.Z.G.n...6. ..r.Qq...3.xN...f".-r.d.U k).\...*.....7.E.?....~*]&||.Q.W1.Ke.........y.Pp...R...A....Y.1D..R..].1k...?.].Y....r.#p.C.H.n...X.......'...g/%T..i..Z.....s/b5.(.XJ...mj7.-|.z.....s.}c.J86.5....|H.d.4..Y....$.../...X_L.@.-&.*h%.|.m.sYu-.[.......w..p,|.[r......{1..J.......Q4.:..."..R...........p.. .......P..G.\.Nv...(..*.}b........ .....HA...7.G...m|f.;.g...".?.EH......i].(.."LM...M..dlGy.*..)...R........].1.=...F....r.. PQ\.j.S6.....M.u.d..y.f:fg.j.....&..t.....p[...9..|.nt$<.#b..../..2....v..e=p(.K|I.]i.f2........H..V....@....:Y....................p........o..FI... .S......YO....9se..CtP..-.\..r.;..#..WW... Eu...L.-.@.(e......H.:... pJ.n.P>.....U3f... .a..$;......AQ.B......+....A...../rw....4'...y.T..]D..&[.R.kF..C./Zlk...e3./..)c.*.......LC.i......npi.$......x..Qe..._.f.8........w`..W..L....-.....6.z...'...FC...-Y....V. ............. ...Dc.|.=S...[..A..N....F.1....bL...rc"..>|.j..............z..J...B.J{...!(.._rSA..F....h....2..a.C..q. !....t. ....1.X......U...i..-..m..4..1.N.p.k^; ...Q...j........V%.....*n.....6-Hq.]....Z:.....t.<..{..& ...PpaS;.3.h.ty#..i..E.......:.......r..LZ..f..u...|.....4^.;s8........f...<.m.....D...>.]2..,...7..c..2,....Fy>.37...!..p...5q.......Sy..=..s..9......#b..e..\...~..9...F@2..U2....C..0[I.....2U..uo5...i.../(..e..'.....Q..wL.Rz.Z..}U.$....b..........|..E.L_h..~....84.f........ .C....y.... &...../E..B.....".n..&..b.)..........)......u...Smk.} pQ....S...../.1..pbG9......]7.".K..##.s..o)Edf....J,...I7.....X..v{.@...-;s..w`cdy..:.$...n.9t.4..... .tR.A...|.:y.^Q.>..K..h.m`.........5...P..S.L...}..;...q.1......GXu uI... .b.i.`....P..)...W..%.v`...ieG.J..(.YQ..R..O...I..aDQ.z....C.1&vSM..\............U.y.fH...V.oX.2\..s9....*+.)nG.l..V*.&.........f.R4..I.Ah......{.3a.,.Q...en......u.0..D..+F.9...~..X..........LVk..k.L6rx....J..G.k.(.......w..-l...s [..o..b...c.^;.%Q#..B.K.J...9 5........aC.!..(M.x.'a.|8 '..R5..Z.......Zt..,..c.v.O.....D.!:6...>3R.......C.&8~..h.t....nx .....OR...O..w.t.?.....jLu.a.?.s...x...FO7..=..*....0..wOui..'.I... ...m%>]....... ..}..m5,<...-....I.7..S.}.p........U..zf.A.....'.....W/.....B 5......w....p .}.q'..Z.+.'.W.4.[]...2c..B$....P..G.?..PhKmJ .m...8.......-.._.....4...M..W......N......[.d..x..#.;.'Ejp.TO...N....B.[..!GV}6.....I..J..)..... .r<......~6.VN..or./b..q......P...@;.U/.*.=(...*|.-..N...... 9.[a.........243 /|q......`E...t.Hl.WdR;.=>\.L+$....b..........|.) ...X..=a.........<.8..g;...N.~@.|m.\A`$.....; ...Y=.x.."..Az.......*...o....w..2.....;...3..2l.......]8....q...7.b..E.....;....<96.Yf...gcU,.A=T@.......J.3>....UtQ.-.`.i......A . ..<..B... .?.pZ.........@.#. ..@..!.O7.. g>IV.w.94.H9`X....U......=z..[rs.]I1 .Ct.+..9kW.,..be.} $.dSI.do/...C.nZ....a.3+..v..s.ko$v.. .......QE...K:.......lq`..\........Z.O=....6..=..'C....'.,Fd_Y.....+RW9....8...4....w...q.{..$n.^. .0....)o.:...M./W...7.6.4.#.L..1...YX....W.[..p-`...!x/.U.c...X.3.D.U.......8 .........P..f0c2}R[8...eJ.|%...=9..`...h_...:..S....N.....o.A..|WB:...)a.KU..Eb..T...Q..N........4.px..rY.:U..Y.. ..8f...E.d.H........w......X....!.>..A*o..U....V..:..H.-..3..Zoz.4D. ;...b l....j}.A..J...c...\....[...t....G.w@gU.^J../..V)Nm.2w...... .....+.z.1.Y.....^..^..m...PX.F........R.........../..W.9..,..4...[.Nf......B..1h. !....JY.8....k....of...,.$....b..........|...$...`....ze.......x.K/..@.I....QrR*..~..D.BW...5....%....GZ.u}..oL*O.).........G\..tX...cH..J:ch..$......i..../..._3^r.r...`.@Ox3....Zf...P.3;.. .h.{..........._.j..1sgp>1....cJ...-K.w..*g....f.......WH0..<_...L... ....i....f..l8,....L<.K.P|..=.3....(%]. .E.|L.4Y.K}h/......T.l.|U.S&.U..n...3g...%.Mc47!+.. X............I.jo ME..w..?...g.;.....0.........||..Q...Q..Z.Z..J..:....L...Zp....D..x..K.z..._....A..I.....4..$....b..........|.b..i.v...{. .:|.$.....#<....^.>.....fw.|.{.m.. JG.GzV.Et. .~\\.....GSN..D0.tq'.8.,I5V.?.....B. .u...N....w1\N..a.6..|5.7..T.k.(X..XkKQ..K......_...n..-*.6.sC7&.".,vH...)h*. .w.........T..+.....~.t .{:.$.2.....N+P..-..[r5....o...c ...H.G.].....%%.X... ...6..Rk..H.../.u..y..$....-/..w.,.a.7.le......J......1c.u..w.B..(r..b..w.._B.[.b....Eg... ~^. .f..... W..RQ.... . Z]....F...#R........:.....U...`\w...p.1.V....v...3.a..(.......q..7.m..V.+Z.SMK...T...)$.....o].4..........O.9...H....c .d............R...$....E...(.[[..$.=.......G.u/E.._4i8a..].k@'...N.p...@Xy...... \....g..G^z.z.y.H.!....}...,...5........;<...ys...... .].(.D.lo...q..`s._.[T.wAT.YZIAR.C.R.O.a....P...E..9..Q.K>r.1.j.U:....$&.%..... . y.h...(...l~l`Z.y......q..........|...J~vv.*.N.7....@ S ...-.u.;.t...-.sI..(....4..y.h..N.E$ ..(...~.z...8.....?=YS....WHF....X9......A....h..P,.......IY.+..=_.\E..~L...I..,...D..0..$.3Z...E........>...+.....Bb .Z...;g8.t.. ..y%.L..[."...........rq ..o ;.^........?.....W...@....h....p=Ob....;....4....ZaF....oH/ ....*<-......h......z...r\hn{.<...a..du._.i8z...z.....[.....n......U.;..a_....9...t..5.|.d..D.?[...Z......"...Z.J?X&......`......].E.c.;..p^...0-...\ T.u%...n..... ...6.........mQ....<8#.\.(.tM.....S.?X..e]x.%..N[f..........g..>....Z..m... G.b)9..y..E...Y.[....,)...Eb...{.Ir...mX.....s.%.\...Aw2;..Q."......7...../t.....V..J.O=.C...d._O4] .&3...... T.m.....K.P@L...".....Kv>$...I5.l.$....b..........|...^..S.PP..8T..zz.`~..W....W*.lG..-.Xpp..N.....%..d5@c..).R.!...'K..=T...E.... eIM.b../d`..("d.....g....1......_..;.{. .H..OW.@....+.q.;f....8..[....$n...q7...4r..@.=E..k......Oj..t....Ii. .!....s+x=.bYl.)I..N..n.F ....)..m..+.^NS...s...e.8...d..'G.B.......W.....y.v4)..A..[.....t..2.sk!..V...l3E/..gm...G....YT.4.B..>.0..u..p..Pth....b..|UD.F)#Z.....53..uc;.y_zW....;....johd.-...Y3w.......YnJ....\.R.J.b.L`...AY..KM..&.f....~ .....dzX.D.6..@i -2....e2T#........~...kB.6.)3.R.......%yv..5nRp.{ ....V.Y..[3.X.o.z'....Gx.'sEi.L..........$'..G4J.{7....*.G.g.l.d .G... n..............T...*......".i'{...tB4.....0.3.CJz....L.E...zj....k.....Wz.)-.......%L.Q...Z....qz.7i'..5.3.-.b8.`......lW.|=.^. dcl...p@........qa.qf..f./.......T. .........H+.........Y...K....Z.3m.E.b....!9..} :.e......3.]9$..1B.w.P.Q..w...p.X...F..K. ....z6N..........].R9..f... .......`i-QA.m..{.....n..[.pn-....Y.V....N4..).....N.H....Y...L.uu...._... .T... 9!..i.@<.Z..p. ..y.)>.......x..{.X.0.......d0..0...Q...).. .^.c. ....b!...&A. g...0}...T"m....7WSu....C..&#.(..W...DU_cW..gVn....$+-....x...B.N.s.(..E.....m.}om.v<..%....$........_ .PJb1 t..7.=..H.|..i....4.b}....?..>.o#./$....yX....7...........a#h.f..7X7:....6&...JN7.....'..(j.g......=i.P..%..6.=.$....b..........|.9D.~....k.n...[..=.....S.....l.b.............oa...*N...1 ...-...Dv.K.".6.y~. ......{..ze..^.O.Ei.V.J...v5..\c
多媒体
2018-12-20 19:57:00
「深度学习福利」大神带你进阶工程师,立即查看>>> ;***这两行指令必须加载,类似于c语言中的库函数 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" begin ;开始标志 a = addfile("/home/yuanm/surface.nc","r") ;文件读取 ; 绘图类型(依次为,窗口显示,pdf,ps,ncgm格式) type = "x11" ; type = "pdf" ; type = "ps" ; type = "ncgm" wks = gsn_open_wks(type,"ECMWF_surface") ;创建工作空间 ; 时间维数(如该例子中,只有00,08,16,24四个时间段) times = a->time ; 箭头表示数据a中的时间向量 ntimes = dimsizes(times) ; 时间维数 ;循环结构 do it = 0,(ntimes-1),1 msl1 = a->msl(it,:,:) ; mean sea level pressure t2m1 = a->t2m(it,:,:) ; temperature at 2m u101 = a->u10(it,:,:) ; 10 metre U wind component v101 = a->v10(it,:,:) ; 10 metre V wind component msl = short2flt(msl1) ;数据类型转换 msl = smth9(msl,0.50,0.25,False) ;平滑 t2m = short2flt(t2m1) t2m = smth9(t2m,0.50,0.25,False) t2m = t2m-273.15 u10 = short2flt(u101) v10 = short2flt(v101) msl = msl/100. msl@units="hPa" ;绘图参数控制 res = True res@gsnDraw = False ;为调整绘制顺序,让该图暂时不画出来 res@gsnFrame = False ; res@gsnMaximize = True ; Maximize plot in frame ; Add map resources ; res@mpGridAndLimbOn = True ; Turn off lat/lon lines ; res@mpGridLineColor = "gray" res@mpGeophysicalLineColor = "gray" res@pmTickMarkDisplayMode = "Conditional" ; Turn on map tickmarks res@mpMaxLonF = 180. ;经度最大值 res@mpMinLonF = 100. res@mpMaxLatF = 50. res@mpMinLatF = -10. res@mpFillOn = False ; 温度场绘图 res2 = True res2 = res res2@cnFillOn = True res2@cnLinesOn = False res2@cnInfoLabelOn = False res2@cnLevelSelectionMode = "ManualLevels" res2@cnMinLevelValF = 0.0 res2@cnMaxLevelValF = 40.0 res2@cnLevelSpacingF = 2.0 res2@gsnLeftString =" " res2@gsnRightString = " " map1 = gsn_csm_contour_map(wks,t2m,res2) draw(map1) delete(res2) ; Set some contouring resources. res1 = True res1 = res res1@cnFillOn = False res1@cnLineLabelsOn = True ; res1@cnLineLabelFontAspectF = 0.6 res1@cnLineLabelFontColor = "blue" res1@cnLineLabelPerimOn = False res1@cnLineLabelPlacementMode = "Constant" ; res1@cnLineLabelConstantSpacingF = 1.0 res1@cnLineLabelInterval = 1.0 ; res1@cnLineDashSegLenF = 0.20 res1@cnInfoLabelOn = False ; res1@cnLevelSelectionMode = "ExplicitLevels" ; res1@cnLevels = (/5800.,5840.,5850.,5860.,5870.,5880.,5890.,5900./) res1@cnLevelSpacingF = 2.0 ; res1@cnHighLabelsOn = True ; res1@cnHighLabelString = "H" res1@cnHighLabelBackgroundColor = -1 res1@cnHighLabelFontColor = "blue" ; res1@cnHighLabelFontAspectF = 5.0 ; res1@cnLowLabelsOn = True ; res1@cnLowLabelString = "L" res1@cnLowLabelBackgroundColor = -1 res1@cnLowLabelFontColor = "red" res1@cnLowLabelFontAspectF = 2.0 res1@cnLineColor = "Blue" res1@gsnContourLineThicknessesScale = 3.0 res1@gsnLeftString = "" res1@gsnRightString = "" map = gsn_csm_contour_map(wks,msl, res1) draw(map) delete(res1) ;create vector plot res3 = True res3 = res res3@vcRefMagnitudeF= 20.0 res3@vcRefLengthF= 0.05 res3@vcMinDistanceF= 0.03 res3@vcGlyphStyle= "CurlyVector" res3@vcRefAnnoOn = True ;do not draw reference vector annotation res3@vcRefAnnoOrthogonalPosF = -0.15 ; vertical position res3@vcRefAnnoParallelPosF = 0.98 res3@vcLineArrowThicknessF = 2.0 res3@gsnDraw = False res3@gsnFrame = False res3@gsnLeftString = " " res3@gsnRightString = " " map2= gsn_csm_vector_map(wks,u10,v10,res3) draw(map2) delete(res3) frame(wks) end do end
注:
grib资料与ncl资料大同小异,都是先提取变量,然后做数据处理。
变量查看指令:ncl_filedump "资料名“(如"surface.nal")
然后根据所查看到的变量信息提取变量。
多媒体
2018-12-14 21:06:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
SoapUI Pro 拥有许多其他web服务测试工具所不具备的高级技术和功能。对于REST、SOAP以及其他流行的API和物联网协议,它提供了业界最全面的功能测试功能。通过易用的图形界面和企业级功能, SoapUI Pro 允许你快速创建和执行自动功能测试。在单一环境下, SoapUI Pro 提供了完整的测试覆盖,支持所有的标准协议和技术。本文旨在引导新用户开始第一次功能测试,供大家学习讨论。
在 ReadyAPI 中,您可以运行请求、测试用例、测试套件或整个测试项目。 当您需要检查这些请求的工作方式时,运行单个请求是有意义的。要模拟用户场景,您需要模拟运行多个请求的测试用例。测试套件可帮助您运行多个测试用例。
运行个别请求
通常在创建测试时运行单个请求,这样可以快速查看响应数据、修改请求参数(如果需要)或添加断言。在复杂测试中,请求通常依赖于先前测试步骤中的数据。单独运行这些请求时,这些请求将失败。要运行单个请求测试步骤,请在左侧的“ Navigator ”面板中选择它,然后单击主工具栏上的“ Send ”:
您将在请求编辑器的右侧看到响应内容:
在我们的测试用例中运行另一个请求并查看其响应。
运行测试用例
要运行测试用例,请在“ Navigator ”面板中选择它,然后单击主工具栏上的“ Run ”:
SoapUI 将逐个运行测试用例的测试步骤。您将在测试用例编辑器中看到结果。“ Transaction Log ”页面提供有关测试执行的时间信息:
可以看到测试用例编辑器具有在测试步骤级别上不可用的页面,例如历史记录。您可以在其中查看测试运行趋势或者比较两个测试日志。 您可能会注意到我们的请求已成功执行,但事务日志报告显示已通过零测试步骤:
发生这种情况是因为我们的测试步骤没有可以验证其结果的检查点(断言)。我们将在本教程的下一步创建断言。在我们进入下一步之前,我们想描述一下如何运行测试套件和项目。
运行测试套件和项目
要运行测试套件或项目,请在“ Navigator ”中选择此套件或项目,然后单击主工具栏“ Run ”:
您将在编辑器中看到测试结果:
默认情况下,当您运行测试套件时,测试运行器会串行执行此套件的所有测试用例。要并行运行它们,首先单击工具栏上的“ Run test cases in parallel ”,然后单击“ Run ”:
在请求、测试用例或测试套件编辑器中,您可以轻松查看请求是否成功执行。要验证响应数据或请求执行时间,请使用断言。
在本教程的下一步中,将介绍向测试步骤添加断言,敬请关注。
查看转载原文请点击 这里 。
多媒体
2018-12-14 16:24:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
VARCHART XGantt 是一款功能强大的 甘特图控件 。其模块化的设计让您可以创建满足您和您的客户所需求的应用程序(我们领先的甘特图控件 VARCHART XGantt 可用于.NET,ActiveX和ASP.NET应用程序)。 VARCHART XGantt 可以快速、简单地集成到您的应用程序中,帮助您识别性能瓶颈、避免延迟以及高效利用资源,使复杂数据变得更加容易理解。
如果您使用 Gantt Charts 来进行资源控制,那么您通常会对当前情况有一个清晰和精确的概述感兴趣。特别是在某些事情似乎不怎么明了的情况下,您需要立即看到问题。介于此本文旨在讲述如何使用值来标记曲线,供大家学习讨论。
详细的规划不仅需要用 直方图 来表示资源,而且还需要显示 资源利用率 的准确值,以便能够快速识别资源瓶颈。
使用的一个生动的例子是精确控制机器部件数量的生产计划,由于一个或多个直方图的高度复杂性,这些直方图具有许多值的堆叠曲线,在许多情况下会导致空间不足,从而妨碍标签的可读性,因此不能在其中标记曲线。如果应用程序中只显示少量且很少更改的值,从而在x方向上为标签留出足够的空间,则可以通过放置在直方图下方的第二个 VARCHART XGantt 实例获得曲线标签。
在我们的示例中,甘特图是由 VARCHART XGantt ActiveX创建的。机器的容量由部件的数量来衡量,与计划的部件数量一起显示(第一个数字一般表示利用率,第二个数字表示资源的最大可用性):
【直方图中生产计划显示利用率】
直方图显示了资源调度器在8点时计算出的20个片和9点时计算出的10个片的分布,因此,9点10件的可用容量很容易识别。
需要注意以下四点: 必须禁用上部XGantt的水平滚动条,以使两个XGantt实体看起来像一个图。 缩放系数、表宽、水平滚动偏移量和图的单位宽度的设置必须相同。 XGantt在设计时要定位数字,需要在第二步中创建一个用于包含标签的层。 在运行时,每个标签创建一个组和一个节点,标签被放置在要标记的曲线的那个周期。
当组布局切换到 “All nodes in one row” 和 “Nodes optimized” 时,标签将在正确的位置绘制。使用以下代码创建标签: Dim currentDate As Date Dim histogram As VcHistogram Dim capacityCurve As VcCurve Dim loadCurve As VcCurve Dim leftDate As Date Dim rightDate As Date Dim leftValue1 As Long Dim leftValue2 As Long Dim rightValue As Long Dim cal As VcCalendar 'Reset second XGantt (only necessary if switching between several curves is possible) VcGantt2.Reset vcRemoveNodes 'Calculate necessary objects Set cal = VcGantt1.CalendarCollection.Active Set histogram = VcGantt1.HistogramCollection.HistogramByName _ (histogramName) Set capacityCurve = histogram.CurveCollection.CurveByName(histogramName) Set loadCurve = histogram.CurveCollection.CurveByName _ ("Load_" + histogramName) 'Create nodes in a loop over the time displayed currentDate = VcGantt1.TimeScaleStart Do While currentDate < VcGantt2.TimeScaleEnd 'Read curves Call capacityCurve.GetValues(d, leftDate, leftValue1, _ rightDate, rightValue) Call loadCurve.GetValues(d, leftDate, leftValue2, _ rightDate, rightValue) 'create node for second XGantt with Node-ID, 2 values, group name = 'histogram name, start and end date VcGantt2.InsertNodeRecord CStr(d) + ";" + _ CStr(leftValue2) + "/" + _ CStr(leftValue2) + "/" + _ histogramName + ";" + _ normDat(d) + ";" + _ normDat(DateAdd("h", 1, d)) 'calculate next start date (at the end of a working day moving forward to 'the beginning of the next working day) currentDate = cal.AddDuration(currentDate, 1) If Hour(currentDate) = 17 Then currentDate = cal.AddDuration(cal.AddDuration(currentDate, 1), -1) End If Loop 'import all nodes to the Gantt diagram VcGantt2.EndLoading 'Perform grouping again VcGantt2.GroupNodes True
更多VARCHART XGantt系列教程将在后续更新,敬请关注~
查看文章转载原文请点击 这里 。
多媒体
2018-12-13 16:21:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
最近需要根据有限的站位点绘制插值等值线图,在网上中文搜索一通,只发现了这货 Matplot Basemap 画湖北地图、插值、等值线 ,要么就是对这货的转载,这货不提供数据的形式,但是基本的代码思路还是不错的,于是继续转向google英文,搜到了如下的回答,我对代码做了注释,已备别人查询,关于文中提到的数据是txt格式的,我也直接将数据贴在下面了。总结一下:在地图上绘制等值线: 确定基本的绘图框架; 获取采集数据,与地图做映射,并根据映射数据插值;scipy.interpolate.griddata包插值比较快,常用的三种插值方法为liner(基于三角形的线性插补法),cubic(基于三角形的三次插补法),nearest( 最近邻居插补法),这些方法定义了匹配数据点的曲面类型,'cubic' 方法生成平滑曲面,而 'linear' 和 'nearest' 分别具有一阶导数和零阶导数不连续。 根据栅格插值数据绘图 # -*- coding: utf-8 -*- @author: Adwiy Wang import numpy as np import pandas as pd from matplotlib.mlab import griddata from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt from matplotlib.colors import Normalize from scipy.interpolate import griddata as gd # 设置基本图片画板 fig = plt.figure(figsize=(10, 8)) ax = fig.add_subplot(111, axisbg='w', frame_on=False) # 提取数据 data = pd.read_csv('datam.txt', delim_whitespace=True) norm = Normalize() #设置地图边界值 lllon = 21 lllat = -18 urlon = 34 urlat = -8 #初始化地图 m = Basemap( projection = 'merc', llcrnrlon = lllon, llcrnrlat = lllat, urcrnrlon = urlon, urcrnrlat = urlat, resolution='h') # 将经纬度点转换为地图映射点 data['projected_lon'], data['projected_lat'] = m(*(data.Lon.values, data.Lat.values)) # 生成经纬度的栅格数据 numcols, numrows = 1000, 1000 xi = np.linspace(data['projected_lon'].min(), data['projected_lon'].max(), numcols) yi = np.linspace(data['projected_lat'].min(), data['projected_lat'].max(), numrows) xi, yi = np.meshgrid(xi, yi) # 插值 x, y, z = data['projected_lon'].values, data['projected_lat'].values, data.Z.values zi = gd( (data[['projected_lon', 'projected_lat']]), data.Z.values, (xi, yi), method='cubic') # 设置地图细节 m.drawmapboundary(fill_color = 'white') m.fillcontinents(color='#C0C0C0', lake_color='#7093DB') m.drawcountries( linewidth=.75, linestyle='solid', color='#000073', antialiased=True, ax=ax, zorder=3) m.drawparallels( np.arange(lllat, urlat, 2.), color = 'black', linewidth = 0.5, labels=[True, False, False, False]) m.drawmeridians( np.arange(lllon, urlon, 2.), color = '0.25', linewidth = 0.5, labels=[False, False, False, True]) # 等值面图绘制 con = m.contourf(xi, yi, zi, zorder=4, alpha=0.6, cmap='jet') # 插入测绘点 m.scatter( data['projected_lon'], data['projected_lat'], color='#545454', edgecolor='#ffffff', alpha=.75, s=50 * norm(data['Z']), cmap='jet', ax=ax, vmin=zi.min(), vmax=zi.max(), zorder=4) # 插入色标、名称和范围 cbar = plt.colorbar(con,orientation='horizontal', fraction=.057, pad=0.05) cbar.set_label("Mean Rainfall - mm") m.drawmapscale( 24., -9., 28., -13, 100, units='km', fontsize=10, yoffset=None, barstyle='fancy', labelstyle='simple', fillcolor1='w', fillcolor2='#000000', fontcolor='#000000', zorder=5) plt.title("Mean Rainfall") plt.savefig("rainfall.png", format="png", dpi=300, transparent=True) plt.show()
数据文件:datam.txt on Lat Z 32.6 -13.6 41 27.1 -16.9 43 32.7 -10.2 46 24.2 -13.6 33 28.5 -14.4 43 28.1 -12.6 33 27.9 -15.8 46 24.8 -14.8 44 31.1 -10.2 35 25.9 -13.5 24 29.1 -9.8 10 25.8 -17.8 39 33.2 -12.3 44 28.3 -15.4 46 27.6 -16.1 47 28.9 -11.1 31 31.3 -8.9 39 31.9 -13.3 45 23.1 -15.3 31 31.4 -11.9 39 27.1 -15.0 42 24.4 -11.8 15 28.6 -13.0 39 31.3 -14.3 44 23.3 -16.1 39 30.2 -13.2 38 24.3 -17.5 32 26.4 -12.2 23 23.1 -13.5 27
多媒体
2018-12-04 14:06:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
一维插值
插值不同于拟合。插值函数经过样本点,拟合函数一般基于最小二乘法尽量靠近所有样本点穿过。常见插值方法有拉格朗日插值法、分段插值法、样条插值法。
拉格朗日插值多项式:当节点数 n 较大时,拉格朗日插值多项式的次数较高,可能出现不一致的收敛情况,而且计算复杂。随着样点增加,高次插值会带来误差的震动现象称为龙格现象。
分段插值:虽然收敛,但光滑性较差。
样条插值:样条插值是使用一种名为 样条 的特殊 分段 多项式 进行插值的形式。由于样条插值可以使用低阶多项式样条实现较小的 插值误差 ,这样就避免了使用高阶多项式所出现的 龙格现象 ,所以样条插值得到了 流行 。 #!/usr/bin/env python # -*-coding:utf-8 -*- import numpy as np from scipy import interpolate import pylab as pl x=np.linspace(0,10,11) #x=[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] y=np.sin(x) xnew=np.linspace(0,10,101) pl.plot(x,y,"ro") for kind in ["nearest","zero","slinear","quadratic","cubic"]:#插值方式 #"nearest","zero"为阶梯插值 #slinear 线性插值 #"quadratic","cubic" 为 2 阶、3 阶 B 样条曲线插值 f=interpolate.interp1d(x,y,kind=kind) # ‘slinear’, ‘quadratic’ and ‘cubic’ refer to a spline interpolation of first, second or third order) ynew=f(xnew) pl.plot(xnew,ynew,label=str(kind)) pl.legend(loc="lower right") pl.show()
结果:
二维插值
方法与一维数据插值类似,为二维样条插值。 # -*- coding: utf-8 -*- """ 演示二维插值。 """ import numpy as np from scipy import interpolate import pylab as pl import matplotlib as mpl def func(x, y): return (x+y)*np.exp(-5.0*(x**2 + y**2)) # X-Y 轴分为 15*15 的网格 y,x= np.mgrid[-1:1:15j, -1:1:15j] fvals = func(x,y) # 计算每个网格点上的函数值 15*15 的值 print len(fvals[0]) #三次样条二维插值 newfunc = interpolate.interp2d(x, y, fvals, kind='cubic') # 计算 100*100 的网格上的插值 xnew = np.linspace(-1,1,100)#x ynew = np.linspace(-1,1,100)#y fnew = newfunc(xnew, ynew)#仅仅是 y 值 100*100 的值 # 绘图 # 为了更明显地比较插值前后的区别,使用关键字参数 interpolation='nearest' # 关闭 imshow()内置的插值运算。 pl.subplot(121) im1=pl.imshow(fvals, extent=[-1,1,-1,1], cmap=mpl.cm.hot, interpolation='nearest', origin="lower")#pl.cm.jet #extent=[-1,1,-1,1]为 x,y 范围 favals 为 pl.colorbar(im1) pl.subplot(122) im2=pl.imshow(fnew, extent=[-1,1,-1,1], cmap=mpl.cm.hot, interpolation='nearest', origin="lower") pl.colorbar(im2) pl.show()
左图为原始数据,右图为二维插值结果图。
二维插值的三维展示方法 # -*- coding: utf-8 -*- """ 演示二维插值。 """ # -*- coding: utf-8 -*- import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib as mpl from scipy import interpolate import matplotlib.cm as cm import matplotlib.pyplot as plt def func(x, y): return (x+y)*np.exp(-5.0*(x**2 + y**2)) # X-Y 轴分为 20*20 的网格 x = np.linspace(-1, 1, 20) y = np.linspace(-1,1,20) x, y = np.meshgrid(x, y)#20*20 的网格数据 fvals = func(x,y) # 计算每个网格点上的函数值 15*15 的值 fig = plt.figure(figsize=(9, 6)) #Draw sub-graph1 ax=plt.subplot(1, 2, 1,projection = '3d') surf = ax.plot_surface(x, y, fvals, rstride=2, cstride=2, cmap=cm.coolwarm,linewidth=0.5, antialiased=True) ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('f(x, y)') plt.colorbar(surf, shrink=0.5, aspect=5)#标注 #二维插值 newfunc = interpolate.interp2d(x, y, fvals, kind='cubic')#newfunc 为一个函数 # 计算 100*100 的网格上的插值 xnew = np.linspace(-1,1,100)#x ynew = np.linspace(-1,1,100)#y fnew = newfunc(xnew, ynew)#仅仅是 y 值 100*100 的值 np.shape(fnew) is 100*100 xnew, ynew = np.meshgrid(xnew, ynew) ax2=plt.subplot(1, 2, 2,projection = '3d') surf2 = ax2.plot_surface(xnew, ynew, fnew, rstride=2, cstride=2, cmap=cm.coolwarm,linewidth=0.5, antialiased=True) ax2.set_xlabel('xnew') ax2.set_ylabel('ynew') ax2.set_zlabel('fnew(x, y)') plt.colorbar(surf2, shrink=0.5, aspect=5)#标注 plt.show()
左图的二维数据集的函数值由于样本较少,会显得粗糙。而右图对二维样本数据进行三次样条插值,拟合得到更多数据点的样本值,绘图后图像明显光滑多了。
参考链接:
1.拉格朗日插值法: https://zh.wikipedia.org/wiki/拉格朗日插值法
2.样条插值:https://zh.wikipedia.org/wiki/样条插值
多媒体
2018-12-04 14:03:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
首选项勾选保存时压缩

F11,输入并回车
(getproperty trackviewnodes.Anim_Layer_Control_Manager.controller #animlayers).count=0
多媒体
2018-11-27 20:25:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
很久很久以前,刚学习windows编程时,碰到BMP图像的数据结构,里面就有Plane的概念,当时搞了很长时间也没有建立很形象化的理解。这几天看FFMPEG,恰好学习YUV格式时浏览到了一个网页,我觉得讲的特别好,言简意赅,让我豁然开朗。好的概念就是这样,又精准又形象:
YUV formats fall into two distinct groups, the packed formats where Y, U (Cb) and V (Cr) samples are packed together into macropixels which are stored in a single array, and the planar formats where each component is stored as a separate array, the final image being a fusing of the three separate planes.
多媒体
2018-11-27 16:06:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
【下载 Infragistics Ultimate 最新版本】
您想通过将旧桌面应用程序重新设计为基于Web的现代应用程序来实现它的现代化吗?除了技术平台和外观和感觉之外,还有更多的事情需要考虑。要确保为应用程序添加创新的和有用的改进,请遵循UX设计过程。
用户体验通常被定义为一个人在使用产品或服务时的总体感觉或体验,但用户体验也是设计创新和有用解决方案的过程。UX设计过程中的四个主要步骤是: 研究 交互设计 美学设计 评估和迭代(在上面列出的两个设计阶段中)
研究
研究过程的目的是了解设计问题,发现业务和用户需求。通过了解业务需求、用户的需求和需求以及技术限制,您可以设计出一个出色的用户体验。
研究过程的第一步是了解业务需求。与业务利益相关者进行面谈和研讨会,了解他们的目标和应用程序要求。
接下来,进行用户研究,了解用户想要什么和需要什么。想要和需要之间是有区别的。想要是用户可以轻松识别的需求,而需求是用户可能无法有意识识别的更深层次的需求。为了了解用户真正需要什么,进行观察研究。观察用户在正常执行这些任务的环境中执行其典型任务。了解用户的特征、他们的任务、他们使用的工具和信息源,以及他们的物理和社会环境。与用户交谈将确定他们想要什么,但观察将揭示对他们真正需要什么的更深层次的洞察。
最后,除了学习业务和用户需求外,还要考虑技术约束。您可能会想到理想的解决方案来满足业务和用户需求,但它必须符合实际的技术约束。
交互设计
利用从研究阶段获得的知识,开始在白板上勾画出设计思想。然后在纸上修改草图,列出屏幕上的整体元素,并指定用户和系统之间的交互。
接下来,创建线框,这是低保真的黑白设计,重点放在布局和交互的基础上。在原型制作工具(如Indigo Studio)中创建线框允许您将屏幕链接在一起并模拟交互。点击原型的能力使项目团队成员、涉众和可用性测试参与者更容易理解设计将如何工作。
美学设计
在项目的早期,可视化设计师可以与业务涉众合作,了解他们对应用程序设计方向的愿景。在我们的项目中,视觉设计师创建样式图块,显示客户可以选择的不同设计方向。稍后,所选择的视觉设计方向可以应用到最终的线框中,以创建显示实际屏幕将是什么样子的实体模型。
评价与迭代
在交互设计和美学设计阶段,我们不断地向客户和项目团队审查我们的设计,以获得他们的反馈,并根据需要进行更改。我们还与具有代表性 的用户一对一地进行可用性测试。我们要求可用性测试参与者尝试在应用程序中执行任务。如果我们看到他们中的许多人在理解或执行某些任务时遇到问题,我们知道这些问题代表着我们需要重新设计的问题。
一旦我们有了一个交互设计和美学设计,我们的客户满意,并与用户进行了良好的测试,我们就创建了一个设计规范文档,向开发人员提供他们构建设计所需的所有细节。
用户体验的作用
用户体验是一个设计过程,它允许您了解要解决的问题的性质。通过了解业务需求、用户的需求和需求以及技术限制,您可以创建创新的、有用的解决方案。
多媒体
2019-01-09 10:18:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
下载Essential Studio for Xamarin最新版本
Essential Studio for Xamarin 是全面的Xamarin.iOS、Xamarin.Android和Xamarin.Forms组件套包,包含最快的图表和网格。
ESSENTIAL PDF
OpenType字体
使用OpenType字体向PDF文档添加文本。
PDF/A-1b合规性
创建PDF/A-1b一致性文件。
PDF VIEWER
RTL
RTL支持根据设备的区域性将UI的流更改为从右向左。
表单填写和编辑
表单填写和编辑支持允许用户填写和编辑PDF文档中的表单字段。
手写签名
手写签名支持允许用户在PDF文档中的签名表单字段中添加、编辑和删除手写签名。
ESSENTIAL PRESENTATION
连接器
添加、编辑和删除PowerPoint文件中的连接器。
CALENDAR
内联和议程视图自定义
支持使用模板和模板选择器自定义内联和议程视图事件。
CHART
数据标记连接器中的直线支持
将数据标记的连接线更改为圆形图表中的水平线。目前,数据标记的连接线是根据各段的角度绘制的。
使用单个Y值绘制范围柱状图类型
一个典型的范围柱状图需要两个值,高和低,但是这个特性允许用户用一个Y值绘制范围柱状图。当Y值被视为范围柱形图的delta值,并且分段排列在图表区域的中心时,这是可能的。
系列选择支持
通过触摸系列中的任何位置来突出显示整个系列。
自定义轴
将轴添加到图表中,而不将其映射到任何序列。这通常用于复制Y轴并将其显示在Y轴的另一侧。即使在运行时删除或添加了各自的序列,也可以始终将轴保存在UI中。
多媒体
2019-01-08 10:40:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
【下载 Infragistics Ultimate 最新版本】
“设计到代码”,即可视化设计师、用户体验架构师、产品经理和应用程序开发人员如何参与协作软件设计和开发过程,允许每个利益相关者使用他们最喜欢的工具,包括Sketch、Indigo Studio和Visual Studio代码以及Angular & Flutter框架.。
Indigo.Design是一个统一的、基于云的可视化设计、UX原型、代码生成和应用程序开发平台。
Indigo.Design功能
Indigo.Design包含四个关键组件,它们构成了从设计到开发的过程,创造了令人惊叹的体验,其目标是确保利益相关者参与设计过程,并消除了从设计师到开发人员之间容易出错和繁琐的设计移交——Indigo.Design允许您生成代码,而不是提供无与伦比的团队流和生产力。 Design System ——50多个UI组件作为SketchUI工具包出现,映射到我们的Angular UI工具集的Ignite UI。使用这些组件创建的设计将生成HTML、CSS和Angular代码。我们还包括45+UX/UI模式和完整的应用程序来启动您的设计项目,以及一些您可以学习的完整应用程序设计。我们的库在设计时考虑了可扩展性,允许您轻松定制组件或UX模式,以满足您的品牌需求。
Design Cloud ——是我们的云体验,具有一些关键功能和优势。一个基于图像的原型设计工具和内置的组协作允许您围绕公共和私有工作区组织您的团队。使用基于图像的原型制作,您可以导入Sketch文档或图像,然后添加交互和转换,以显示用户流,然后与其他人共享原型并在任何设备上查看。添加无减额可用性研究功能,该功能允许您为原型创建基于任务的测试,我们将记录音频和视频,这样你就可以看到你的用户与你的原型交互,同时在任务完成时返回实时分析和报告。
Design Code Generation Service :通过将基于云的设计链接到开发团队的Visual Studio代码扩展出现。使用从Indigo.Design原型生成的URL从Visual Studio代码扩展访问原型,选择要用于HTML、CSS和代码的组件或视图,单击一次,我们将生成最佳实践角度代码并将其添加到应用程序中。
Ignite UI for Angular :50+基于材料的UI组件,设计并构建在谷歌的Angular框架上,包括市场上最快的Angular数据网格和数据图表。SketchUI工具包中的每个符号都映射到我们的角度组件,确保您的应用程序具有功能齐全、企业级就绪的功能。
多媒体
2019-01-08 10:20:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
centos7下安装 使用yum安装 执行如下命令进行安装: yum -y install epel-release rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum install ffmpeg ffmpeg-devel -y
如果需要确认,输入y并回车即可。待安装完毕后,输入ffmpeg -version进行检查,如果输出版本信息说明安装完成。 使用wget进行在线安装 首先执行如下命令,进行安装包的下载(也可以自己制定下载的目录,默认在当前路径): wget https://raw.githubusercontent.com/q3aql/ffmpeg-install/master/ffmpeg-install
然后对安装包进行授权,使其可以执行: chmod a+x ffmpeg-install
执行 ./ffmpeg-install --install release
进行安装。
然后使用上述命令进行版本信息的检查,如果安装成功,则会显示类似如下的信息: ffmpeg version 3.3.2-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.1 (Debian 5.4.1-11) 20170519 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100 ... 使用视频文件进行测试 上传一个视频到文件目录,然后执行如下命令: 【转换mov为mp4格式】 ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4 【截取视频片段】 ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y 【压缩视频】 ffmpeg -i plutopr.mp4 -b 6000k out.mp4
参考资料: https://linuxadmin.io/install-ffmpeg-on-centos-7/
多媒体
2019-01-07 21:17:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
下载Essential Studio for UWP最新版本
Essential Studio for UWP 是包含有60 +组件的综合套包,包括最快的图表和网格组件。所有组件根据当前被呈现的设备系列自适应渲染。
DATAGRID
自动生成自定义类型属性
将自定义类型属性自动生成为单列,而不将所有内部属性自动生成为单独的列。
DIAGRAM
打印缩放
现在可以在打印图表时缩小或放大它。
自定义游标
可以更改图表中使用的默认光标。
ESSENTIAL DOCIO
更新字段增强
Essential DocIO现在允许更新Word文档中的AutoNum和Set字段。
重新启动列表中的编号
Essential DocIO现在允许在Word文档中重新启动列表中的编号,同时执行邮件合并和合并多个Word文档。
ESSENTIAL PDF
OpenType字体
使用OpenType字体向PDF文档添加文本。
PDF/A-1b合规性
创建PDF/A-1b一致性文件。
ESSENTIAL PRESENTATION
连接器
添加、编辑和删除PowerPoint文件中的连接器。
CHART
将文本添加到圆环图的中心
文本或任何视图都可以添加到圆环图的中心,以显示有关所显示数据的任何信息。
堆积圆环图
此功能允许用户在圆环图中用多个圆呈现数据,而不是在单个圆中使用单独的弧段。
数据标记连接器中的直线支持
此功能允许用户将数据标记的连接线更改为圆形图表中的水平线。当前,数据标记的连接线是基于各自线段的角度呈现的。
在饼图和甜甜圈系列中将小数据点分组为“Others”类别
饼图和甜甜圈图上的小片太多,乱七八糟。为了克服这个问题,这个特性提供了一个选项,可以根据阈值将小切片合并为单个切片。
使用单个Y值绘制范围柱状图类型
典型的范围柱状图需要两个值,即高和低,但此功能允许用户使用单个Y值绘制范围柱状图。当Y值被视为范围柱形图的增量值,并且段排列在图表区域的中心时,这是可能的。
MAPS
地图工具提示支持
已经为地图形状层的形状、标记和气泡以及地图平铺层的标记提供了工具提示支持。工具提示功能动画和模板支持自定义。工具提示用于在最终用户点击地图元素时显示有关形状、标记和气泡的信息。
NUMERIC TEXTBOX
限制范围
通过设置最大和最小属性值来限制特定范围内的值。
RICHTEXTBOX
用户界面容器
RichTextBox控件支持在文档中嵌入(host)UI元素的UI容器。
ESSENTIAL XLSIO
Excel到PDF
Excel文档可以转换为PDF格式。这将转换具有数据、样式、格式文本、Unicode字符、条件格式、数据透视表、表格、形状、图像、文本框、页面设置选项、分页符、打印区域、页眉和页脚的Excel文件。
多媒体
2019-01-07 14:39:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
【下载 Infragistics Ultimate 最新版本】
在编码之前创建线框或实体模型可以使在设计和需求上的协作更加容易。通过围绕用户将看到的内容组织讨论,可以减少需要解释的内容。但是,如果不与目标受众一起测试设计,这是一个不完整的用户体验过程。
使用indigo.design,你所需要的只是一个网页浏览器,从prototyping制作到观看人们如何使用你的prototyping的视频,最好的部分是你可以在任何你喜欢的工具中创建你的设计。是的,甚至微软PowerPoint!
使用Sketch导入在云中创建Prototypes
要开始创建prototyping,请访问indigo.design以登录或创建免费用户帐户。
登录后,使用创建新prototyping选项启动基于Web的编辑器。然后简单地拖放Sketch文档以导入它。最好的部分是,您不必重新创建可能在Sketch中创建的流。现在设置一个起点,然后单击“publish”。就这样!你将开始一项可用性研究,或者与其他人分享一个链接!
如果Sketch文档不包含任何流,则可以使用此编辑器添加它们。为此,启用“Highlight UI elements”选项,然后只需单击任何突出显示的Sketch元素即可添加热点。如果您喜欢绘制自己的热点,请禁用“Highlight UI elements”,并将其拖动到图像顶部的任何位置以添加热点。
您可以添加使用任何工具创建的图像,还可以创建和发布prototyping。
使用用户录像进行无限制的可用性测试
您可以为Indigo.Design上发布的任何prototyping设置可用性研究。创建一个研究可以让您为每个参与者收集可用性分析和用户视频。
您可以通过为人们设置任务来完成prototyping,并指定一组预期的步骤来实现这一点。参与者可以完成他们喜欢的任务,但是你可以学习“expected path”是否是流行的路径。在观看视频重播时,我们独特的时间线可视化功能让您能够快速跳转到有趣的事件(例如,误判)
如果将可用性研究添加到组工作区,则可以让任何受邀成员分析报告和视频。您甚至可以将可用性研究的责任委托给团队中的另一个成员。
学员完成研究后,研究负责人将收到电子邮件通知,并附上研究进度报告。
查看Indigo.Design桌面获得更强大的prototyping
桌面应用程序提供所见即所得的体验,从头开始创建prototyping。您可以通过从工具箱或自己的可重用设计库添加UI组件来设计屏幕。
更重要的是,桌面应用程序允许您轻松地创建UI状态,以使用动画时间线模拟丰富的交互和自定义转换。您甚至可以使用我们的Sketch插件从Sketch中导入,以添加更多交互。当然,无论您是在线还是离线,您都可以使用桌面应用程序!
然后,您可以将prototyping发布到云端或Prem服务器上,以获得协作、评论和可用性研究的所有好处。
多媒体
2019-01-07 10:24:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
近日,Ubuntu发布Microk8s及其GPU支持。Microk8s是一个开发用的 Kubernetes版本,使用snap进行安装和管理,而且可以通过简单的设置即可启用容器内GPU的支持。
安装Microk8s: $ snap install microk8s --classic
获得Microk8s信息: $ snap info microk8s
启用Microk8s的GPU支持: $ microk8s. enable gpu
查看状态: $ microk8s. status
参考: https://blog.ubuntu.com/2018/12/10/using-gpgpus-with-kubernetes https://microk8s.io/?utm_source=MOTD&utm_medium=MOTD&utm_campaign=1)FY19_Cloud_K8
多媒体
2018-12-24 07:46:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
写在前面
本系列的 上一篇 已经提到了,打开QtLocation的源码工程,maps目录下组织着围绕QGeoMap这个核心类型的一个基本地图框架,其中QGeoTiledMap(继承自QGeoMap)是基于这个框架对瓦片地图的一个实现;而declarativemaps目录中的核心类型是QDeclarativeGeoMap,它对QGeoMap进行封装并注册为QML类型,并提供了地图要素(它这里称为MapItem)的渲染功能。从QDeclarativeGeoMap的名称我们可以看到QQuick1的QtDeclarative模块的烙印,但这个模块在QQuick2的时代已经过时了。
相信不少人在第一次看到Qt源码的时候很蛋疼,看到其中的Private类和诸如Q_D、Q_Q等宏时,一开始一头雾水;特别是你如果像我一样,一开始就直奔QtLocation模块的源码则会有更加深刻的体会。maps目录下几乎所有类型是私有的,这些类型的头文件末尾接着一个“_p”,很多类型还有一个同名的头文件,其末尾接着一个“_p_p”。每打开一个私有类的头文件都有一段醒目的注释: // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. //
这些私有类究竟有何作用呢?《 The Beauty of Qt 1: D-Pointer / Private Implementation 》这篇博文可以带我们一探究竟。从该博文摘取如下示例:
假如不使用D指针和Private类,那么我们可能会有如下的一个类型声明: class MyClass { public: MyClass(); ~MyClass(); private: int myVar; };
显然,这个头文件中的私有变量myVar被其他文件#include之后是会暴露的,很多时候我们不希望引用头文件的彼方对于我们私有的成员和可能的内部实现知道得太清楚;同时这里的声明过于明确,以至于后来如果我们希望增加某些私有变量,就必须重新定义这个头文件。
于是,我们换种方式,定义一个指针d_ptr指向Private类,然后用Q_DECLARE_PRIVATE宏来定义一些辅助函数和声明友元类: class MyClassPrivate; class MyClass { public: MyClass(); ~MyClass(); private: MyClassPrivate * const d_ptr; Q_DECLARE_PRIVATE(MyClass); };
简单地说,这样的好处在于 保证代码的二进制兼容性: 如果一个程序和某个库的某个版本动态链接,并且不需要重新编译,则称这个库是具有二进制兼容性。为了做到这一点,Qt中大量使用D指针和Private类的设计模式,不惜用近乎双倍的代码量,将私有变量包裹到一个Private类中,然后在公有类头文件中用一个私有的D指针指向对应的Private类。
然后,对这个Private类进行实现: class MyClassPrivate { public: MyClassPrivate(MyClass *parent); private: MyClass * const q_ptr; Q_DECLARE_PUBLIC(MyClass); int myVar; };
可以看到公有类中的d_ptr指向私有类,而私有类中的q_ptr则指向公有类;然后用两个宏去实现公有类和私有类之间的相互转换: #define Q_DECLARE_PRIVATE(Class) \ inline Class##Private* d_func() { return reinterpret_cast \ (qGetPtrHelper(d_ptr)); } \ inline const Class##Private* d_func() const { return reinterpret_cast \(qGetPtrHelper(d_ptr)); } \ friend class Class##Private; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define Q_DECLARE_PUBLIC(Class) \ inline Class* q_func() { return static_cast(q_ptr); } \ inline const Class* q_func() const { return static_cast(q_ptr); } \ friend class Class;
最后,进一步用两个宏对d_ptr和q_ptr这两个指针的访问方法进行简化: #define Q_D(Class) Class##Private * const d = d_func() #define Q_Q(Class) Class * const q = q_func()
如此一来,我们就可以在公有类中用Q_D宏去得到d这个私有类的指针,并用Q_Q宏去得到q这个公有类的指针了(注意:公有类中声明了Q_DECLARE_PRIVATE才可以使用Q_D宏,私有类中声明了Q_DECLARE_PUBLIC才可以使用Q_Q宏)。我们可称其为D-Q机制。
从QGeoMap窥探D-Q 设计之美
回到QtLocation,我们来看看QGeoMap类型。
QGeoMap公有类的定义在qgeomap_p.h文件中,私有类的定义在qgeomap_p_p.h文件中,它们两个的具体实现都在qgeomap.cpp文件中。QGeoMap继承自QObject,则继承了其对象树组织、信号槽以及D-Q机制。QGeoMap公有类定义如下(有省略,详见源码): class QGeoMappingManagerEngine; class QGeoMapPrivate; class QGeoCoordinate; class QSGNode; class QQuickWindow; class QGeoMapParameter; class QDeclarativeGeoMapItemBase; class Q_LOCATION_PRIVATE_EXPORT QGeoMap : public QObject { Q_OBJECT Q_DECLARE_PRIVATE(QGeoMap) ... public: enum ItemType { NoItem = 0x0000, MapRectangle = 0x0001, MapCircle = 0x0002, MapPolyline = 0x0004, MapPolygon = 0x0008, MapQuickItem = 0x0010, CustomMapItem = 0x8000 }; Q_DECLARE_FLAGS(ItemTypes, ItemType) ... virtual ~QGeoMap(); void setViewportSize(const QSize& viewportSize); QSize viewportSize() const; int viewportWidth() const; int viewportHeight() const; QGeoCameraData cameraData() const; ... void setActiveMapType(const QGeoMapType mapType); const QGeoMapType activeMapType() const; ... const QGeoProjection &geoProjection() const; virtual void prefetchData(); virtual void clearData(); void addParameter(QGeoMapParameter *param); void removeParameter(QGeoMapParameter *param); void clearParameters(); ItemTypes supportedMapItemTypes() const; void addMapItem(QDeclarativeGeoMapItemBase *item); void removeMapItem(QDeclarativeGeoMapItemBase *item); void clearMapItems(); ... ... virtual bool setBearing(qreal bearing, const QGeoCoordinate &coordinate); virtual QGeoShape visibleRegion() const; ... virtual bool fitViewportToGeoRectangle(const QGeoRectangle &rectangle); ... protected: QGeoMap(QGeoMapPrivate &dd, QObject *parent = 0); void setCameraData(const QGeoCameraData &cameraData); ... virtual QSGNode *updateSceneGraph(QSGNode *node, QQuickWindow *window) = 0; Q_SIGNALS: void cameraDataChanged(const QGeoCameraData &cameraData); void sgNodeChanged(); void activeMapTypeChanged(); ... private: Q_DISABLE_COPY(QGeoMap) friend class QDeclarativeGeoMap; friend class QGeoMapPrivate; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoMap::ItemTypes)
QGeoMap 通过前向声明相关的Class们,组织起地图的基本框架:
1、地图几何要素类型ItemType,如 MapRectangle 、 MapCircle 、 MapPolyline 、 MapPolygon 和 MapQuickItem 等(注意:从这里可以看出QtLocation其实缺乏地理数据的互操作性,其定义的地图几何要素并不遵循 OGC® Standards 的 Simple Feature标准 ,这给GIS专业级的地图应用带来了不便;当然,同样也有非专业的东西最终成为了GIS标准的鲜活例子,那就是谷歌攻城狮们搞的 KML ,因为谷歌地球真的是太amazing了,——这需要QtLocation足够牛,并累积足够影响力才行,相信MapBox的贡献会增大其可能性),其对应类型皆以 QDeclarativeGeoMapItemBase 为基类,并提供 addMapItem 和 removeMapItem 等动态增删接口;2、地图类型 QGeoMapType ,如卫星地图、街道地图和地形图等等;3、镜头和视点,即这里的 QGeoCameraData ,类似于KML中的LookAt元素,插播KML的图类比说明一下:
4、地图投影,即 QGeoProjection 为抽象基类,QtLocation中只继承此类实现了 QGeoProjectionWebMercator 类型(网络墨卡托投影);5、地图参数 QGeoMapParameter 以及 addParameter 和 removeParameter 等动态增删接口,便利地提供了一种动态地从前端将自定义参数传递到后端的机制,这很有用;6、其他如视口viewport(屏幕坐标)、可视地理范围visibleRegion(经纬坐标)等相关属性和接口,不一而足。
QGeoMap 对应的 QGeoMapPrivate 定义如下(有省略,详见源码): class QGeoMappingManagerEngine; class QGeoMap; class QGeoMapParameter; class QDeclarativeGeoMapItemBase; class Q_LOCATION_PRIVATE_EXPORT QGeoMapPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QGeoMap) public: QGeoMapPrivate(QGeoMappingManagerEngine *engine, QGeoProjection *geoProjection); virtual ~QGeoMapPrivate(); const QGeoProjection *geoProjection() const; ... ... protected: /* Hooks into the actual map implementations */ virtual void addParameter(QGeoMapParameter *param); virtual void removeParameter(QGeoMapParameter *param); virtual QGeoMap::ItemTypes supportedMapItemTypes() const; virtual void addMapItem(QDeclarativeGeoMapItemBase *item); virtual void removeMapItem(QDeclarativeGeoMapItemBase *item); ... virtual void changeViewportSize(const QSize &size) = 0; // called by QGeoMap::setSize() virtual void changeCameraData(const QGeoCameraData &oldCameraData) = 0; // called by QGeoMap::setCameraData() virtual void changeActiveMapType(const QGeoMapType mapType) = 0; // called by QGeoMap::setActiveMapType() virtual double mapWidth() const; virtual double mapHeight() const; ... virtual double maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const; protected: QSize m_viewportSize; QGeoProjection *m_geoProjection; QPointer m_engine; QGeoCameraData m_cameraData; QGeoMapType m_activeMapType; QList m_mapParameters; QList m_mapItems; ... mutable double m_maximumViewportLatitude = 0; };
对比可见其D-Q机制遵循我 写在前面 的内容,但却不见d_ptr和d_ptr指针,这是为何呢?因为只要你的公有类继承于QObject,对应的私有类继承于QObjectPrivate,再分别声明了Q_DECLARE_PRIVATE和Q_DECLARE_PUBLIC,就可以通过Q_D和Q_Q从基类中的d_ptr和d_ptr指针强制转换为当前子类的d_ptr和d_ptr指针。如此一来,在公有类中调用私有类的具体实现就游刃有余了,例如: void QGeoMap::setViewportSize(const QSize& size) { Q_D(QGeoMap); if (size == d->m_viewportSize) return; d->m_viewportSize = size; d->m_geoProjection->setViewportSize(size); d->changeViewportSize(size); }
多媒体
2018-12-23 22:51:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
分形几何方法


分形生成过程

分形分类

分形的维数


确定性自相似分形几何构造

统计自相似分形的几何构造
仿射分形构造方法

随机中点位移方法


地面图控制

自平方分形



自逆分形
多媒体
2018-11-19 16:42:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
一个Phong着色器

纹理映射



凹凸映射



多媒体
2018-11-19 15:52:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
着色器结构

在OpenGL中使用着色器



基本数据类型
矢量

矩阵
控制结构
GLSL函数
与OpenGL的通信


多媒体
2018-11-19 15:24:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
固定功能流水线

改变流水线结构

顶点着色器
片元着色器
几何着色器
曲面细分着色器
多媒体
2018-11-19 11:02:04
「深度学习福利」大神带你进阶工程师,立即查看>>>
Cook着色树

Perlin像素流编辑器

RenderMan

多媒体
2018-11-19 10:49:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
经常会有SEO人员讨论,为什么我的SEO关键词总是不被快速索引,而实际上这里主要指的是,针对特定关键词的核心内容,那么,它主要涉及如下两个指标:
①索引
②快速收录
这里值得说明的是:索引并不等于收录,索引只是被百度抓取后,进入百度的索引库中,它并不一定会在百度搜索结果中展现。
而经过算法评估后,搜索引擎认为它可以展现在搜索结果中的时候,它才变成我们通常所谈论的百度收录。
那么,SEO关键词优化,如何让百度快速索引?
根据以往的工作经验,我们认为我们首要需要先解决索引的问题,而进一步在解决快速收录的问题,为此我们需要:
1、索引
针对百度索引的问题,我们主要需要考量如下指标:
多媒体
2018-11-26 13:46:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
最近需要对一些数据绘制函数图,因为要求也不是很高,希望尽快出个图看看,也懒得装什么专门的软件,干脆就用python的绘图包matplotlib来做,方便快捷,画出来的图还不错。下面简单记录一下。

绘制图形主要是两步:1. 准备数据;2. 绘图并显示。以下是代码,可很容易看到每一部分的功能 #!/usr/bin/env python # coding=utf-8 import platform import matplotlib from matplotlib.font_manager import * sysstr = platform.system() if(sysstr == "Windows"): # windows下中文字符处理 myfont = FontProperties(fname='C:\Windows\Fonts\simhei.ttf') #此处选合适的字体文件 else: # linux下中文字符处理 import sys reload(sys) sys.setdefaultencoding('utf-8') matplotlib.use('Agg') #如果在没有安装x11的服务器上,此句可输出图片并保存,否则可能报错 myfont = FontProperties(fname='/usr/share/fonts/truetype/wqy/wqy-microhei.ttc') #此处选合适的字体文件 matplotlib.rcParams['axes.unicode_minus'] = False import matplotlib.pyplot as plt import numpy as np # 定义用到的变量 timebar = [] absolute = [] basevalue = 1000000.0 index = [] relativeMax = [] period = 30 idx = 0 #将变量从文件读入,并放到合适的变量中 for line in open("pnl.txt",'r'): row = line.split('\t') timebar.append(int(row[0])) value = float(row[2])/basevalue absolute.append(value) if (idx % period == 0): #此处将该值进行周期性统计 index.append(idx) relativeMax.append(basevalue-min(absolute)) idx+=1 #画图 fig1 = plt.figure() plt.title("曲线",fontproperties=myfont) #整个坐标图的名称 plt.xlabel('timebar') #x轴名称 plt.ylabel('absolute') #y轴名称 plt.plot(timebar,absolute) fig1.savefig("曲线.png") #保存图片 plt.show() #显示图片 #将周期性统计结果写入文件 with open("summary.txt",'w') as summaryFile: i = 0 for idx in index: output = "{0},{1:.2%},{2:.2%}\n".format(i,absolute[idx],relativeMax[i]) summaryFile.write(output) i+=1

其中,pnl.txt文件的形式如下: 1524096000 10000.154785 1010000.154785 1524182400 2988.606417 1012988.761203 1524268800 -3999.066491 1008989.694711 1524355200 -2212.860282 1006776.834429 ... ... ...

接下来看一个稍微复杂的例子 # --*-- coding: utf-8 --*-- import os import numpy as np import time, datetime import math import matplotlib matplotlib.use('Agg') #import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdate """ 此处为准备绘图的数据用的代码,略去 横轴数据为xxx(时间),纵轴数据有三组,分别是y1,y2,y3 以下代码绘制双y轴图形,即不同曲线采用不同的y轴标记值 最终每幅图上绘制三条曲线,y1和y2的读数在左边y轴,y3的读数在右边y轴 """ fig = plt.figure(figsize=(10.24,7.68)) # 设置图片大小为1024x768 x_start = 0 period = datetime.timedelta(days=30) # 按月绘制图形 for idx in range(0, len(xxx)): if (xxx[idx] > xxx[x_start] + period): plt.xticks(xxx[x_start:idx-1:int((idx-1-x_start)/10)], rotation=30) # 设置x轴刻度间隔,并且将其旋转30度,防止挤在一起 ax1 = fig.add_subplot(1,1,1) # 在同一幅图中增加子图 ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y/%m/%d')) # 因为横轴为时间,设置时间显示格式 ax1.plot(xxx[x_start:idx-1], y1[x_start:idx-1], 'g') ax1.plot(xxx[x_start:idx-1], y2[x_start:idx-1], 'b') ax1.set_ylabel('y1(green) or y2(blue)') ax2 = ax1.twinx() # 绘制双y轴图形的关键 ax2.plot(xxx[x_start:idx-1], y3[x_start:idx-1], 'r') ax2.set_ylabel('y3', color='red') filename = resultFile[0:-4] + "_" \ + xxx[x_start].strftime("%Y-%m-%d") + ".png" fig.savefig(filename) # 保存图片 fig.clf() # 清除图形,重新绘制 x_start = idx

绘制完成的图片如下
多媒体
2018-11-25 14:33:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
  就在今天下午,有网友爆出知名品牌 Dolce&Gabbana(杜嘉班纳)的设计师兼创始人Stefano Gabbana在ins上公然发表辱华言论。
  下面截图 可以看出 country of is China 的字样,虽然我英文不太好,但是China还是能看懂的。
  是个中国人看了都来气,该新闻一出引起了大众的广泛热议,全国人民的愤怒,他更是出言不逊说“中国才是‘狗屎’的国家”等辱骂,事后此次大秀会的受邀明星: 木子洋 、 章子怡 、 李冰冰 、 陈坤 、 王俊凯 等等均纷纷发表微博:“ 我爱我的祖国 ”、“ 祖国高于一切 ”,火箭少女101官博更是明确表明“ 任何成员均不会出席今晚Docle&Gabbana上海大秀活动 ”。
坤哥今天上午的飞机已抵达上海,知道褥华事件后立马掉头返回北京,不参加Show了
子怡女神霸气发声
子怡女神霸气发声
火箭少女均不出席,让D&G自己凉凉去吧~
程序员也爱国
  虽说作为一名程序员,娱乐圈的新闻我并不是太关心,也不追星,每天心里想的就是 如何用一行代码 ,只用一行哦~ 就能改变世界,但这一次真心为他们点赞。
  首先我是一名中国人,其次才是一个程序员,就跟你骂我可以,但不能骂我家人是一个道理,骂了怎么办呢??怎么办??不服就干啊,打回来~,这也是我 IT平头哥 的一惯作风( 蜜獾 (huan), 平头哥 被称为最无所畏惧的动物)。
  前段时间国内知名艺人 @赵丽颖 、 @冯绍峰 在微博宣布婚讯,引发媒体和社会各界的关注,#赵丽颖冯绍峰结婚#迅速登上微博热搜榜,微博也因为瞬间流量过大,热搜功能出现了短暂故障. —— 程序员不背锅 ,只支持离婚并发
  鹿晗和关晓彤微博互圈“宣布恋情”了,微博摊了 —— 程序员不背锅 ,也不是离婚哦
但是这一次如果还挂了,相信程序员是愿意背锅的,这种人渣~要让全国人民,大街小巷都知道。
甩锅了
  虽然事后D&G大傻发现事情的严重性,开始甩锅了:“D&G设计师在下午1时许在Ins上对此回应称:我的ins 账号被盗了。我的律师事务所正在处理这件事,我爱中国和中国文化,对于发生的事我感到非常抱歉”。

  随后官方也赶紧出来澄清:“Dolce&Gabbana的官方Intragram账号和Stefano Gabbana的Instagram账号被盗,我们已经立即通过法律途径解决。我们为这些不实言论给中国和中国人民造成的影响和伤害道歉。我们对中国和中国文化始终一贯的热爱与尊重。”
结尾
  最后共青团中央在官方账号回应了“Dolce&Gabbana设计师发表辱华言论”事件:我们欢迎外国企业来华投资兴业,同时在华经营的外国企业也应当尊重中国,尊重中国人民。这也是任何企业到其他国家投资兴业、开展合作最起码的遵循。
  你敬我一尺我还你一丈,不管是谁,如果你自己都不尊重自己,又怎么能要求别人来尊重你呢??
  好吧,事情讲完了,作为一名小小的程序员,还是努力学习吧,期待着一行代码就能改变世界的梦想早日实现,努力学习吧,关注下面这个 公众号 ,与您一起进步,努力成为你想成为的样子。
更多文章:
easy-mock 最好的备胎没有之一 immutability因React官方出镜之使用总结分享! 小程序项目之做完项目老板给我加了6k薪资~ 小程序项目之填坑小记 面试踩过的坑,都在这里了~ 你应该做的前端性能优化之总结大全! 如何给localStorage设置一个过期时间? 动画一点点 - 如何用CSS3画出懂你的3D魔方? 动画一点点 - 手把手教你如何绘制一辆会跑车 SVG Sprites Icon的使用技巧 作者:苏南 - 首席填坑官 链接: https://blog.csdn.net/weixin_43254766/article/details/83758660 交流:912594095、公众号: honeyBadger8 本文原创,著作权归作者所有。商业转载请联系 @IT·平头哥联盟 获得授权,非商业转载请注明原链接及出处。
多媒体
2018-11-22 08:13:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
辐射能术语

基本辐射度模型


逐步求精的辐射度方法

多媒体
2018-11-19 10:24:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
方案1、一使用 DVR 、NVR 直接显示上墙
不得不说,这种办法是成本最低廉的,但这里有不少限制:
无法实现分散点的集中上墙。譬如连锁经营的酒店,如果我在总部建立一个集中上墙的环境,这个就很麻烦了。这里面要考虑的地方非常多,包括网络环境、映射、带宽、码流等。
不能随意控制,要控制只能去操作那个DVR。如果一台DVR上设置好了16路摄像机,当你想控制某个画面时,你还得记住它在哪个DVR上,然后到那个DVR上去操作鼠标。
布局环境上的影响非常大。譬如专业的上墙环境,放置设备的机柜在电视墙后面,而需要用电视墙前面的操作台坐席来控制大屏。这个时候,用这个办法显然就很麻烦了,因为你不可能把DVR放在大屏后,而拖了好多个长长的鼠标线到操作台坐席上。
VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年随PS/2机一起推出的一种使用模拟信号的一种视频传输标准,在当时具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。不支持热插拔,不支持音频传输。
DVI(Digital Visual Interface),即数字视频接口。一种高速传输数字信号的技术,有DVI-A、DVI-D和DVI-I三种不同的接口形式。DVI-D只有数字接口,DVI-I有数字和模拟接口,目前应用主要以DVI-I(24+5)为主。
HDMI是(High Definition Multimedia Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术,适合影像传输的专用型数字化接口,可同时传送音频和影像信号,最高数据传输速度为48Gbps
DVR:DigitalVideoRecorder(硬盘录像机),即数字视频录像机,相对于传统的模拟视频录像机,采用硬盘录像,故常常被称为硬盘录像机,也被称为DVR。它是一套进行图像存储处理的计算机系统,具有对图像/语音进行长时间录像、录音、远程监视和控制的功能。DVR主要是应用于模拟摄像摄像头的存储与控制设备。
NVR:是(Network Video Recorder即网络硬盘录像机)的缩写。NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流,并进行存储、管理,从而实现网络化带来的分布式架构优势。简单来说,通过Nvr,可以同时观看、浏览、回放、管理、存储多个网络摄像机。摆脱了电脑硬件的牵绊,再也不用面临的繁琐。如果所有摄像机网络化,那么必由之路就是有一个集中管理核心出现。NVR主要应用于网络摄像机的存储与控制设备。
IP CAMERA(简称IPC),网络摄像机。IP是网际协议,Camera是照相机、摄影机,IP Camera顾名思义就是网络摄像机,它是一种由传统摄像机与网络技术结合所产生的新一代摄像机。由网络编码模块和模拟摄像机组合而成。网络编码模块将模拟摄像机采集到的模拟视频信号编码压缩成数字信号,从而可以直接接入网络交换及路由设备。
方案2、一使用模拟矩阵
常见的结构图如上,这种应用场景下,应该说是一种专业上墙办法了。大家可以看出,虽然模拟矩阵本身不贵,但要使用大量的视频线,甚至光端机,而且必须要从摄像机所在位置拉线到中心来,这个施工成本会非常高。更重要的一点是,这种办法更适合模拟摄像机和DVR,但高清网络时代,大部分IPC根本没有视频输出,那么这种办法就会陷入死局,这也是传统的模拟矩阵厂商在高清时代碰到的一个最大挑战。
方案3、一使用jiemaqi
目前市场上,大部分的jiemaqi都是由DVR/NVR底板做成的,甚至连程序都不变,几乎都没有独立的SDK协议。这样来看,使用jiemaqi的方案其实和第一种使用DVR和NVR的方案没有根本区别,这种情况下,它的优劣点也非常清楚了。
方案4、一使用数字矩阵
数字矩阵是一款将前端数字视频信号进行解码上墙的中高端解码设备,其信号的输入端为千兆网口,输出端为标准的VGA/DVI/HDMI视频接口,可直接连接显示屏,也可连接拼接控制器。它除了拥有模拟矩阵和jiemaqi的全部功能之外,还具有更多的功能和更强的解码能力。可以支持不同厂商的DVR、DVS、IPC、NVR设备同时解码上墙,并具有视频切换、画面分割、画面拼接、轮循显示、云镜控制、录像回放、报警联动等功能,它的优势有
DVS(digital video server)网络视频服务器、又叫数字视频编码器,是一种压缩、处理音视频数据的专业网络传输设备,网络视频服务器是一种实现音视频数据编码、网络传输处理的专用设备,它由音视频编码器、网络接口、音视频接口RS422/RS485串行接口、RS232串行接口等构成。
兼容性好:通过插件技术,利用私有协议或SDK,能完美兼容不同厂商的各种DVR、DVS、IPC、NVR等前端数字视频设备
支持画面拼接:采用先进的软拼接技术,无需再额外配置拼接控制器、拼接矩阵或拼接盒,只要通过鼠标点击,就可轻松实现2*2、2*3、3*3、3*4等多屏拼接,既方便,又节省成本。
报警联动上墙:结合锐眼专用视频联动报警主机或第三方网络型报警主机,可实现视频联动报警上墙,对前端有报警信号产生的关联摄像头的视频进行弹窗上墙显示,并用声音和颜色提醒用户。
支持更多的输入:不同于普通数字矩阵只有几十路的输入限制,由于采用“平台+数字矩阵”的组合,支持128路、256路或更多的视频输入,能满足各种上墙规模项目的需要。

多媒体
2018-11-18 18:57:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
用户对话
窗口和图符
适应多种熟练程度的用户

一致性
减少记忆量
回退和出错处理
反馈

多媒体
2018-11-16 21:36:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
创建GLUT菜单


创建和管理多个GLUT菜单
创建GLUT子菜单



修改GLUT菜单
多媒体
2018-11-16 21:14:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
GLUT鼠标函数



GLUT键盘函数

GLUT数据板函数
GLUT空间球函数

GLUT按钮盒函数
GLUT拨号盘函数
OpenGL拾取操作


多媒体
2018-11-16 21:00:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
基本的定位方法
拖拽
约束
网格
橡皮条方法

引力场

交互式绘画方法
虚拟现实环境

多媒体
2018-11-16 19:47:01
「深度学习福利」大神带你进阶工程师,立即查看>>>
今年中旬 Google 在万众期待下推出了 ARCore ,能将现实与数码完美无缝地融合在一起,丰富我们的现实世界。通过它开发者可以更加快速方便地在 Android 平台开发 AR 应用,凭借 AR 技术大量产品能找到新颖的应用场景,甚至开辟出新的一条产品线。
目前市场上已经有不少基于 AR 技术的产品,例如宜家家居的 IKEA Place 应用提供了新型的在线选购家俬方式,用户只需要将手机摄像头摆向想要放置家具的角落,接着选取你想要的家具,通过简单的拖拉以及旋转即可完成布局,查看这件家具是否符合你的心意。
下图为使用 IKEA Place 的示意图,看起来这张椅子还挺适合的 :)
那么假如 AR 与其他技术进行结合,是否会有更激动人心的应用场景呢?
七牛实时音视频云 (以下简称七牛 RTN)基于已被广泛标准化的 WebRTC 技术栈,有全平台的兼容性,支持各大浏览器如 Chrome、Safari、Firefox 以及各端 Android、iOS、Windows 等。强大的七牛实时音视频流媒体网络在全球有 180 多个数据中心,具有强大的链路加速功能,丰富的节点保证了无论客户分布在全球的什么地区都可以获得加速。平均 200ms 的超低延时,为诸多对实时性有苛刻要求的客户场景提供最根本支持,如一对一语聊、聊天室、视频会议、在线教育等对交互性有强需求的场景均十分适合使用七牛 RTN。
在本篇中,我们会结合 Google 官方的示例 hello_ar_java 将 AR 技术融入到实时音视频通话,其中会应用到 1.1.0+ 版本七牛 RTN SDK 的新功能 “外部音视频数据导入”。
以下为效果动图
准备工作0: 集成七牛 RTN SDK 到 AR Demo
在真正开始编码前,我们需要先将相应的项目和环境搭建完成
下载 七牛 RTN SDK 到当前目录 QNRTC-Android git clone git@github.com:pili-engineering/QNRTC-Android.git
下载 ARCore 到当前目录 arcore-android-sdk git clone git@github.com:google-ar/arcore-android-sdk.git
拷贝相应七牛 RTN SDK 文件到 hello_ar_java 工程中 将文件 QNRTC-Android/releases/qndroid-rtc-1.2.0.jar 拷贝到 arcore-android-sdk/samples/hello_ar_java/app/libs/ 中(libs 目录需要自行创建) 将 QNRTC-Android/releases/ 下的 armeabi、armeabi-v7a、arm64-v8a、x86 等 4 个文件夹拷贝到 arcore-android-sdk/samples/hello_ar_java/app/src/main/jniLibs 文件夹中(jniLibs 目录需要自行创建) 使用 AndroidStudio 打开 arcore-android-sdk/samples/hello_ar_java 工程,修改其中几项配置 为了让工程引用上面两步中添加的库,打开 app/build.gradle 文件,在 dependencies 中增加行 implementation fileTree(include: ['*.jar'], dir: 'libs') 为了能进行实时通话,需要设置程序使用网络的权限,打开 AndroidManifest.xml 文件,在 manifest 标签中增加以下使用权限声明
核心类介绍
在实际编码与代码分析前,我们先简单概述介绍其中会涉及到的核心类
QNRTCManager :七牛 RTN SDK 核心类,提供低延时实时音视频通话能力
Session :ARCore 核心类,管理 AR 系统状态包括摄像头 Camera 采集、点网监测、平面检测等能力
GLSurfaceView & Renderer :Android 系统提供的视图类与渲染类,分别提供负责画面显示与渲染
BackgroundRenderer & ObjectRenderer & PlaneRenderer & PointCloudRenderer : Demo 中提供的渲染类,分别负责以下部分的渲染 背景图渲染(摄像头预览原始图) 物体及其阴影渲染(Android 模型及其阴影) 平面渲染(AR 系统检测到的平面) 点云渲染(AR 系统检测到的点云)
准备工作1: 建立基本的实时音视频通话环境
首先需要实现实时音视频的房间事件监听器 QNRoomEventListener ,其需要实现的方法很多,以下只展现这次简单示例需要用到的方法,完整的接口说明在 这里 public class HelloArActivity extends AppCompatActivity implements GLSurfaceView.Renderer, QNRoomEventListener { private boolean mPublished = false; // 标识本地是否发布成功 ... @Override public void onJoinedRoom() { mRTCManager.publish(); // 加入房间成功后,尝试发布 } @Override public void onLocalPublished() { mPublished = true; // 发布成功后,标识为 true } ... }
在 onCreate 方法尾部初始化实时音视频通话环境并加入指定房间,其中关于 Room Token 获取的方式可以参考 这里 protected void onCreate(Bundle savedInstanceState) { ... QNRTCSetting setting = new QNRTCSetting(); setting.setExternalVideoInputEnabled(true); // 开启外部视频导入功能 mRTCManager.setRoomEventListener(this); // 设置房间事件监听器 mRTCManager.initialize(this, setting); // 七牛 RTN SDK 初始化 mRTCManager.joinRoom(###Your Room Token###); // 通过 Room Token 加入指定房间 }
准备工作2: 建立基本的 AR 环境
利用 GLSurfaceView & Renderer 为绘制 AR 画面做好准备
在 Activity 类声明中实现 GLSurfaceView.Renderer 接口,在本 Demo 中如下,随即需要我们实现 3 个相应的方法,意义分别在注释中被描述 public class HelloArActivity extends AppCompatActivity implements GLSurfaceView.Renderer, QNRoomEventListener { /** * 显示 Surface 创建完成时回调 **/ public void onSurfaceCreated(GL10 gl, EGLConfig config) { } ... /** * 显示 Surface 尺寸大小改变时回调 **/ public void onSurfaceChanged(GL10 gl, int width, int height) { } ... /** * 显示 Surface 创建完成时回调 **/ public void onDrawFrame(GL10 gl) { } }
在实现了 Renderer 渲染类后,我们需要提供用作显示的 Surface,以便让 Renderer 在其上进行渲染显示,GLSurfaceView 就有这种能力。
以下示例代码,从布局 xml 文件中解析出 GLSurfaceView 并设置 Renderer surfaceView = findViewById(R.id.surfaceview); // 从布局 xml 中解析 GLSurfaceView ... surfaceView.setRenderer(this); // 设置 Renderer
创建 Session
Session 是 AR 系统的主入口类,在任何 AR 操作前必须先初始化并启动 protected void onResume() { session = new Session(/* context= */ this); // AR 系统初始化 ... session.resume(); // 开始 AR 会话,尝试开启摄像头,如摄像头被占用,会抛出 CameraNotAvailableException 异常 }
使用 OpenGL Shader 在显示 Surface 上绘制 AR 增强画面
在 AR 会话开始后,摄像头的每一帧数据都能提供以下信息 原始摄像头预览数据 检测到的平面数组 检测到的点云数组 平面触摸事件
我们可以在 onDrawFrame 方法中利用以上的事件进行相应的处理,例如遇到平面触摸事件,则在相应的位置放上一个 Android 模型,并且同时绘制出检测到的平面以及点云。 // 绘制背景 private final BackgroundRenderer backgroundRenderer = new BackgroundRenderer(); // 绘制物体 private final ObjectRenderer virtualObject = new ObjectRenderer(); // 绘制物体阴影 private final ObjectRenderer virtualObjectShadow = new ObjectRenderer(); // 绘制平面 private final PlaneRenderer planeRenderer = new PlaneRenderer(); // 绘制云点 private final PointCloudRenderer pointCloudRenderer = new PointCloudRenderer(); public void onDrawFrame(GL10 gl) { frame = session.update(); // 获取摄像头原始数据帧(阻塞方法) // Handle one tap per frame. handleTap(frame, camera); // 检测是否有平面点击事件,如有则在相应位置放置 Android 模型 ... // Draw background. backgroundRenderer.draw(frame); // 将摄像头预览数据作为背景图绘制 ... // Visualize tracked points. PointCloud pointCloud = frame.acquirePointCloud(); pointCloudRenderer.update(pointCloud); pointCloudRenderer.draw(viewmtx, projmtx); // 绘制点云 ... // Visualize planes. planeRenderer.drawPlanes(session.getAllTrackables(Plane.class), camera.getDisplayOrientedPose(), projmtx); // 绘制平面 ... // Update and draw the model and its shadow. virtualObject.updateModelMatrix(anchorMatrix, scaleFactor); virtualObjectShadow.updateModelMatrix(anchorMatrix, scaleFactor); virtualObject.draw(viewmtx, projmtx, colorCorrectionRgba, coloredAnchor.color); // 绘制 Android 模型 virtualObjectShadow.draw(viewmtx, projmtx, colorCorrectionRgba, coloredAnchor.color); // 绘制 Android 模型的阴影 }
##技术结合: 将 AR 增强画面发布到实时音视频云
在分别实现了基本的 实时音视频通话 和 AR 增强画面 后,现在只需要将它们进行最后的结合。
因为 Session 启动后会占用设备摄像头,因此七牛 RTN SDK 无法进行采集,这时候我们需要使用最新版本提供的功能 ”外部音视频数据导入“。
在发布流前,我们需要获取到 AR 增强画面 的 NV21 格式数据,因为当前七牛 RTN Android SDK 的 “外部视频数据导入” 功能只支持 NV21 格式的数据。
以下示例代码在 onDrawFrame 方法中的尾部添加,将 GLSurfaceView 的 Surface 内容数据读取出来,进行必要的格式转换,接着发布出去 public void onDrawFrame(GL10 gl) { ... if (mPublished) { // 只在七牛 RTN 发布流成功后才导入 AR 数据 // 将 AR 增强画面 的数据从 GPU 中读取出来 GLES20.glReadPixels(0, 0, mSurfaceWidth, mSurfaceHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, mBufferRGBA); // RGBA 转为 NV21(篇幅原因,不在此展开算法) mBufferNV21 = RGBAToNV21(mBufferRGBA, mSurfaceWidth, mSurfaceHeight); // 通过 "外部视频数据导入" 功能将 NV21 数据形式的 AR 增强画面 发布出去 mRTCManager.inputVideoFrame(mBufferNV21, mSurfaceWidth, mSurfaceHeight, 0, frame.getTimestamp()); } }
总结
使用 1.1.0+ 版本七牛 RTN SDK 提供的 “外部音视频数据导入” 功能,可以轻松地把 AR 与实时音视频通信结合起来。以上程序基于七牛 RTN SDK 以及相应的 RTN 网络运行,最大可以支持 20 人同时低延时音视频通话。相信不久将来 AR 技术与实时音视频通信的结合会带来更多的应用场景。
免费时长额度赠送活动
七牛实时音视频云从 10 月 30 日 起,实行每月免费时长额度赠送活动。纯音频、标清、高清、超清 4 档位分别赠送 5000 分钟,如果完全使用,折算总消费金额共 770 元。
多媒体
2018-11-16 11:24:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
图形数据的输入功能
输入模式

回显反馈
多媒体
2018-11-16 11:11:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
输入设备的逻辑分类
定位设备

笔划设备
定值设备

选择设备
拾取设备


多媒体
2018-11-16 11:08:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
HSV参数


选择明暗、色泽和色调
HSV和RGB模型之间的转换


多媒体
2018-11-16 09:44:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
CMY参数

CMY颜色空间和RGB颜色空间之间的转换
多媒体
2018-11-16 09:31:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
YIQ参数

RGB颜色空间和YIQ颜色空间之间的转换
YUV和YCtCb系统
多媒体
2018-11-16 09:21:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
XYZ颜色模型

规范化的XYZ值
CIE色度图
颜色范围
主波长

纯度
多媒体
2018-11-16 09:06:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
基色

直观的颜色概念
多媒体
2018-11-16 08:41:00
「深度学习福利」大神带你进阶工程师,立即查看>>>
电磁频谱

颜色的心理学特征
多媒体
2018-11-16 08:35:00