From 7d74f10e6f39a6141924445371f910290a565ad8 Mon Sep 17 00:00:00 2001 From: Philipp Zumstein Date: Sat, 8 Oct 2016 18:29:57 +0200 Subject: [PATCH] Add image and more description for bbox This solves #34. --- 1.2/index.bs | 26 +++++++++++++++++++++++++- 1.2/index.html | 20 +++++++++++++++++++- 1.2/spec.md | 26 +++++++++++++++++++++++++- images/bbox-crop.png | Bin 0 -> 10066 bytes images/bbox.odg | Bin 0 -> 11602 bytes 5 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 images/bbox-crop.png create mode 100644 images/bbox.odg diff --git a/1.2/index.bs b/1.2/index.bs index c474070..8e9d11f 100644 --- a/1.2/index.bs +++ b/1.2/index.bs @@ -101,8 +101,13 @@ The following properties can apply to most elements (where it makes sense): `bbox x0 y0 x1 y1` -The bounding box of the element relative to the document image +The `bbox` - short for "bounding box" - of an element is a rectangular box +around this element, which is defined by the upper-left corner (x0, y0) and +the lower-right corner (x1, y1). + * the values are with reference to the the top-left corner of the document image + and measured in pixels + * the order of the values are `x0 y0 x1 y1` = "left top right bottom" * use `x_bboxes` below for character bounding boxes * do not use `bbox` unless the bounding box of the layout component is, in fact, rectangular @@ -111,6 +116,25 @@ The bounding box of the element relative to the document image See also the section [[#bbox-typesetting]]. +
+ +```html +... +``` + +The bounding box `bbox` of this line is shown in blue and it is span +by the upper-left corner (10, 20) and the lower-right corner (160, 30). +All coordinates are measured with reference to the top-left corner of +the document image which border is drawn in black. + +
bbox explained +
+ +
+ ### `textangle` `textangle alpha` diff --git a/1.2/index.html b/1.2/index.html index 7268de3..b5a9417 100644 --- a/1.2/index.html +++ b/1.2/index.html @@ -1682,8 +1682,15 @@

The following properties can apply to most elements (where it makes sense):

3.1.1. bbox

bbox x0 y0 x1 y1

-

The bounding box of the element relative to the document image

+

The bbox - short for "bounding box" - of an element is a rectangular box +around this element, which is defined by the upper-left corner (x0, y0) and +the lower-right corner (x1, y1).

    +
  • +

    the values are with reference to the the top-left corner of the document image +and measured in pixels

    +
  • +

    the order of the values are x0 y0 x1 y1 = "left top right bottom"

  • use x_bboxes below for character bounding boxes

  • @@ -1694,6 +1701,17 @@

    3.1 if the non-rectangularity is caused by floating elements around which text flows

See also the section ยง5.2.1 bbox (typesetting).

+
+ +
<span class='ocr_line' id='line_1'
+    title="bbox 10 20 160 30">...</span>
+
+

The bounding box bbox of this line is shown in blue and it is span +by the upper-left corner (10, 20) and the lower-right corner (160, 30). +All coordinates are measured with reference to the top-left corner of +the document image which border is drawn in black.

+
bbox explained
+

3.1.2. textangle

textangle alpha

The angle in degrees by which textual content has been rotate relative to the diff --git a/1.2/spec.md b/1.2/spec.md index cfe8311..78f1135 100644 --- a/1.2/spec.md +++ b/1.2/spec.md @@ -72,8 +72,13 @@ The following properties can apply to most elements (where it makes sense): `bbox x0 y0 x1 y1` -The bounding box of the element relative to the document image +The `bbox` - short for "bounding box" - of an element is a rectangular box +around this element, which is defined by the upper-left corner (x0, y0) and +the lower-right corner (x1, y1). + * the values are with reference to the the top-left corner of the document image + and measured in pixels + * the order of the values are `x0 y0 x1 y1` = "left top right bottom" * use `x_bboxes` below for character bounding boxes * do not use `bbox` unless the bounding box of the layout component is, in fact, rectangular @@ -82,6 +87,25 @@ The bounding box of the element relative to the document image See also the section [[#bbox-typesetting]]. +

+ +```html +... +``` + +The bounding box `bbox` of this line is shown in blue and it is span +by the upper-left corner (10, 20) and the lower-right corner (160, 30). +All coordinates are measured with reference to the top-left corner of +the document image which border is drawn in black. + +
bbox explained +
+ +
+ ### `textangle` `textangle alpha` diff --git a/images/bbox-crop.png b/images/bbox-crop.png new file mode 100644 index 0000000000000000000000000000000000000000..4214c35aeb4c7d78eee416900bb7ba7de1010b83 GIT binary patch literal 10066 zcmb_?byyTp*zXdGqJXqC5+Yr~(x4!+q;yGlOM|c=23^wK(&2)1EYjVu^h$TfQVVzZ zzMKEu@41)f*_qv$Ip@6do;QC#LOv+J$HS$>1%W_#5IGq&5D3cz_`dxJ6FBA_&F%xI z$DibMT|posxBCyqq9vUd2t*Hp$h^_;O50oT{}gwYeQ-34yIq|10w$>QB;_@}hNSMT?!TXOeHSN8ZIlQsxsX+Pi#rif*P0y`yF&YOv#F7@Otj_l^u zz8@7MGZc(*f)V6d{FqN^MAV=6lT+%E7B-R7#do>!mxq5VFhM*^Kl+2S9|i@1fAJnT ziC0Q{Z03>Mb!ORFe);~&=IMMt)D3}>y}iT)C7HLKGY0DLFE1?W?Fo1XE|Pj`8Y<-t zwLWLZcWNd!mwZQ$(Zo7h>*S*%{Z2{rF(HUY_{U&yd+IPYZ5rSF8iRI`g-nq`OmoZJ z1)|6^%`qg~=w)AMjBJ!eHWeXc1$`#$>veGmS!0p`wdRrdNtkYqpUG1OHFa}D0j5CE zTrFst5!S*GOY+k<7w1Rgw=@lWQ0uA*1tle}C%nJ}VyM*E+#(u!K_1@NS9vrG)1W=T z!7^J#|6+mM9AkkL4S!Av_!K<5%D3+9XQfdh6f~^@1l7s-&dU#s1^R4^mRnQw~f} zR@^BgK0f}U&q4Djjtm3~3(IrCU3)nNTW))IH_r-CR0WB7$ASOdHH%6{c(s<3)4}>+ zD)A_7>-XP}KvI?6DL6PdRs%`ALPA1;4T(m6m+$GIB&e4rF1XZo_}@&dL9OPoyWw@v z>+`<8K7OmA@a+8`9DE3!NKO+tDPsfxYJFXeEQc0(0uYO)nw&H3!Z2K+_L>CbD&(zd81cDrDsc`Pw5fBidB8h(8O9wu=_#8VLHnG*tHr07nC+3^RLe};k=3`Q-7aVsAOb*;l8cE8xw7J!GM zvxgG36iAC4yDk)!jyE_Bn=WonhUxSdiqs1vj(Zp%i?`I@-Q4;&-XL!sFRwN4(8UMP z)8-E7Gc`whJ1wRe`#dmia zwh2Dsfq2MraBxt&%BD&B-^Qv)P$18feD|s=(CBu!!qxD}9X~2#UI0-J+3bGtBa%jx zOkI|Pi_5Uy#lqX$+dixf1d3JM=p8Dkk^JQ^HmnJ4a_{Mb^WUzFr2q zySwvS4g^O@_O$a|pKk!{+Hwq~NI|FYTA0H3c zQiz@A9SeHLuXf1G;@^C0I~*$HoEhvU`x+Y*9#8~_jCl;7?`7;2*$#WPPee6*GL*=Y8x+u$+!V;*VF3y|>u=5=aQxOf-^lfeDX zA@)3m0TH(+9uYHe*RRHW{rYvG(UZlksIOdd|8o)QS5__G=^eZ2+xw-F4akZoyH0AG zyGiS6HIk+#CMMe22t4rovwTGlkMrCpiL2Y|1D4b1`9s$SVpif*iyG`QO#?Clv zU$gule|b>TxN$t>?cp9deslEqb0F{xxOn|LR8LoVr_Q%LVxb4A2v0H(crwv$+$aM$ z!>g;cvSa~1VQ+rZ(y;JpF2KW+nkKH*c5uo@6A7x~9r#8X<7B`x~vCxraaiZ)+{U+JQGMx{bO{jr->5s&xvG)@;?Zvh~``2`Mdx z>-btYAH{b9Gf=?1EMX`8LrmbuAdqWodSID%ZLBB zvgyBGX#L-f$j@)UNbWIMV{@l46m_JvO(TXSnHA*1n3f!Xaw8b)iqLGl%0Hx2l3w0r z52kb8faW^Wd_dwF-@u^>4RNFgDhTRmLNn)v>}Awm%x+ji5ViE;T?6?Hb5ZR?^xeFs z&&Qb8o*UM%bXVry>ViI+-3TDUjmfKZr|j(P82Ri8tdK@^oB7Vn&)=-4I;GgwFF2M= zrfk-{YezdOHJTeupr_irbICV2eeE__6>KW-@lWMWn9g>QoA>jMxFDxpdXKZyE91@^ z1o!<*J3i0=Lzq~3kzZ@AkrbnDq?rl5Jc~72v zc4}nmo?Pz@V%8R&*s(o;Hd`&}y#?xAIV%W_9TykZP+wnYQD0v?JMl!4(6+=RmyKTn z_`;n|gt^zx;UD>6!xY!nMD~7O4L-20C1fyItE9TANi3fYmY@>QQaonJ+IY(g|2240 zkxcl(rAy!>c8U!!2WPqSl=!5p2Vr4huCA`ch$JDQh2Q2;K;6krMDyuX-~sC7)2h5CG^2D>-UzTn8HQOz zDY)#qUEp-|VDWt+%r6DZt{By13Q+GG{-xzB>?IXYvHZLAf z@b*m(Zi$S{j~~h#4zkXWyHnLlzJA4;$zFv1@bA-AD^S0>_6z?c09t|iBlC`oKxVSA zPNLP-XaA#yf2=iVTV1YK&9>ZFuqIW-P2WQLnQphqzL5zbnqPq&Ka5oPd#-d}nu1q) zgHNU;mZDc@9q~i<_qZVEK8^&WxeVuo`CC%1$S6Byh^uGd${;?1R$B_+wzYzLH7Qp@2!1P-op;d~5%RE{lYQ~KR=Y{o7W)3dAIo)=bjy#^1EbsWysK(=eU z7}n+e(XlVB`c4MI#?4JI8~=Q;*b4M~YF)!2?7+exC?Sv&*`$}+cvCJ@N;H2ci{rPx z{}jePC6|s?IQBz2HZ9kA7dqQ3%$TB=ZPiuF?&A5}g`~-%=Dw+IXOe!I?lke2feYWO zx%a4J_7#Ka;Sbg@a_*WL`xPhBFOa{wtBJ8~qKlHT3fstQ6^X7VThlm~W%< z7S+P~E6x3XN5GZA9L~Cm+3#cQqB@sxD}!{fd7;iu-mX${6FE5y!gB+OE2ykE{9)YI zqz*Fz2Wh!e*^XD>5WtBt1RYYgmeV~KDS}>NBpo&hzYI*8$ZrG(wan#A4yv}O4&O5W zdIJVOAHBV9`m(uFe)TRw`1qnu-so{lw*50+f9GC`8efI7lqf30?!7k8^vJGoL~ znzq!qKlMj#`x+$=-p!$0n`qEO_67e19pPR{O z`1!RQt!Zi-bOJKTMcScyc&v5PjeH*$4MxZI{i!xx-O!!Y*kiBuG3o$sA2sbN1kao; z1X8#&_eY2t*4LmSZg&^=!{j5=*=4O(2J{=77A0JAn^9+Sf32Px-PBP=xRTY{PW23v z>T3#q&ed-(;&vpEkGU@7-o2z#SwnRapOk{a5f_M3xtMjJg>25xZx-(gE-Wc;=(`vr zp}+`VfSE<@ii%&^uD5-CUs2lypGv;XY?}3NyPL)9$JHLjN7b0IKASis3Vn6;XLj)r z{m~;9S*F_`2iINPoUGRGX7^=fOWId&3AWC()5}Qobf|gFceMXcD(baL%vH^GWz1H` zIYlip)?j?U%w>BGp;8fHOFp>?zc_+YrfVh{IT$)G??#W`$=}e%O}KWT;1hmPgLkSF z@H*9bz-(cmDv~*1CV7~wOx5MdMt6~TtGVFC4nid2r@~kWI*87@>`vvVRN!}Y(aFy* zUtVo3K+~gM)7+j>wEvo^qBF7}axe@2KpmshC5ZP^aEC>-JHh>lLmU zuq$HLq;tRZFGa1TWeWJ#TK)UC`Oe29!@tNIaq(68x<5m%*$n1)1Z{*$A}cvuE-%Di z9b{B84ztY?V=rHpesS|?FbU~5Jwn&!ExC=j?6bj5AqG{X72%r;Czff1s=B(m&bIhG z-q4GTZkp5KlyS65HC{)-y`nG9wVv9Jpo@(Zo0hM>_LV@LX3f2Zu^a+x8)nJg5iD~E zvonw#k6Y>Fh_Yl|+bO5X@+iY^U5vYv{1GeGpQz kl-}qdUzw=_+uT$E%KM%<14( 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 literal 0 HcmV?d00001 diff --git a/images/bbox.odg b/images/bbox.odg new file mode 100644 index 0000000000000000000000000000000000000000..574e7bfdd5814550318923d93a7e3ef0b77c316a GIT binary patch literal 11602 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