c# 2015 pdf : Adding a link to a pdf control software system azure windows winforms console 30-part1896

International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014), pp.23-36 
http://dx.doi.org/10.14257/ijsip.2014.7.4.03 
ISSN: 2005-4254 IJSIP 
Copyright ⓒ 2014 SERSC
Practical Segmentation Methods for Logical and Geometric Layout 
Analysis to Improve Scanned PDF Accessibility to Vision Impaired 
Azadeh Nazemi, Iain Murray and David A. Mc Meekin 
Electrical and Computer Engineering Spatial Sciences,  
Curtin University ,Perth ,WA,Australia  
Azadeh.nazemi@postgrad.curtin.edu.au I,murray@curtin.edu.au. 
D.McMeekin@curtin.edu.au  
Abstract 
The use of electronic documents has rapidly increased in recent decades and the PDF is one the 
most commonly used electronic document formats. A scanned PDF is an image and does not actually 
contain any text. For the vision
impaired user who is dependent upon a screen reader to access this 
information, this format is not useful. Thus addressing PDF accessibility through assistive technology 
has now become an important concern. PDF layout analysis provides precious formatting information 
that supports PDF component classification. This classification facilitates the tag generation. Accurate 
tagging produces a searchable and navigable scanned PDF document. This paper describes several 
practical segmentation methods which are easy to implement and efficient for PDF layout analysis so 
that the scanned PDF document can be navigated or searched using assistive technologies. 
Keywords: PDF layout analysis, Optical character recognition (OCR), Vision-impaired 
1. Introduction 
To generate a scanned PDF document that is accessible withan assistive technology such 
asa screen readers Optical Character Recognition (OCR) software is required. OCR extracts 
text from images and creates a plain text format from a scanned PDF document [1]. OCR 
software output does not include any mark up or tags to help with the documents navigability 
with assistive technologies. 
HTML  OCR  an  open  standard  which  defines  a  data  format  for  representation 
of OCR output. The standard aims to embed layout, recognition confidence, style and other 
information  into  the  recognized  text  itself.  Embedding  this  data  into  text  in  the 
standard HTML format is used to improve accessibility and achieve navigation ability. [2] 
OCRopus is an OCR software package which saves output results in an html (hOCR) file. 
However, in some cases all of the different components within the PDF document are not 
indicated. For example hOCR does not have a specific tag for mathematics formulae [3]. 
Document  layout  analysis is the  process of  identifying and  categorizing  the regions of 
interest in the scanned image of a text document. It requires the segmentation of text zones 
from non-textual ones and the arrangement in their correct reading order [4] Detection and 
labeling of the different zones (or blocks) as text body, illustrations, math symbols, and tables 
embedded  in  a  document  is  called  geometric  layout  analysis.  Semantic  labeling  and 
classification text zones based on different logical roles inside the document (titles, captions, 
footnote, etc.,) the logical layout analysis [5]. 
Document layout analysisis typically  performed before a document image is sent  to an 
OCR  engine.  The  approaches  described  in  this  paper  aim  to  improve  layout  analysis 
performance and add more specific and detailed tags to hOCR tagging system.     
Adding a link to a pdf - insert, remove PDF links in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
clickable pdf links; clickable links in pdf files
Adding a link to a pdf - VB.NET PDF url edit library: insert, remove PDF links in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
adding hyperlinks to pdf files; convert doc to pdf with hyperlinks
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014) 
24 
Copyright ⓒ 2014 SERSC
To add more specific and detailed tags to the hOCR tagging system. 
Segmentation Modules 
Running PDF document component segmentation can provide tags for different parts of 
the PDF document based on PDF component properties. The layout analysis is the factor, 
when working with scanned PDF documents that provides the ability for the document to be 
searched  and  navigated.  This ability is  based on  the  discovery of the  bounding  boxes of 
various  components  from  within  the  scanned  PDF  document.  Performing  multiple  layer 
segmentation facilitates the discovery and extraction of the data from the bounding boxes in 
the scanned PDF document’s images. These different segmentation layers are:
Block segmentation 
Text
image
segmentation 
Line
segmentation 
Word
segmentations 
Vertical
Horizontal
recursive
segmentation 
3. Pre Processing 
The PDF document image can be either colored or grey scale. The majority of images have 
a top/bottom, left/right margin. In some cases during the scanning process, the PDF document 
may  rotate  slightly.  Image  color,  size,  margins  and  skew  are  effective  factors  in  the 
segmentation  result.  Therefore,  the  preprocessing  module  before  starting  segmentation  is 
essential to generate smooth input data for the first segmentation layer. 
In developing an application that automatically pre-processes all of the required steps for 
the  segmentation  process,  in  this  research  project,  the  Open  Source  image  processing 
package, Image Magick was used. The pre-processing includes the following stages: 
3.1. Format Conversion 
The scanned PDF document is converted to the Magick Persistent Cache (mpc) image file 
format.  MPC  is  the  native  in-memory  uncompressed  file  format.  This  file  format  is  an 
identical representation of the image in memory in which the file read is directly mapped into 
memory.  The MPC file format is not portable  and is not a suitable format for archiving. 
However,  it  is a suitable file format  as  an intermediate  step for  high-performance image 
processing.  The  MPC  format  requires  two  files  to  support  a  single  image.  The  image 
attributes are written to one file, with the extension. mpc and the image pixels are written to a 
second file with the  extension cache.  In converting  the PDF document to. mpc  it is first 
converted to a portable pixel map format (ppm): 
1. convert document.pdf to document.ppm  
2. convert document.ppm to document.mpc 
Converting PDF format toMagick Persistent Cache image file format(mpc). MPC is  the 
native in-memory uncompressed file format. This file format is identical to represent images 
3.2. Binarization 
 greyscale  image  can  be  used  to  create  a  binary  image  through  thresholding  [6]. 
Thresholding a colour image is done through designating a separate threshold for each RGB 
component in the image and then combining them with an AND operation [7]. The following 
steps demonstrate the process: 
1.  convert document.mpc to separate.png 
Image greyscale separation
Thresholding   greyscale image 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Capable of adding PDF file navigation features to your C# program. APIs for editing PDF document hyperlink (url) and quick navigation link in PDF bookmark.
add url pdf; convert a word document to pdf with hyperlinks
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Support adding PDF page number. Offer PDF page break inserting function. DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references:
add hyperlink in pdf; add links to pdf in acrobat
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014)  
Copyright ⓒ 2014 SERSC
25 
2.  convert separate.png using an 80% threshold to binary.mpc 
Figure 1. Binarization
3.3. Scaling Image 
Reducinga large image document by 50% increases the image processing speed during the 
segmentation process. 
1.  convert binary.mpc  -scale by 50% half.mpc 
3.4. Margin Removal  
A PDF document layout analysis is based on block segmentation. Accurate recognition of 
white  space  areas  leads  to  access  block  separator  segments.  Top-bottom  and  left-right 
margins often interfere with the accurate recognition of white space areas as block segments 
separator. Use of a margin removal module removes all margins prior to running the block 
segmentation. The main tasks for the margin removal module are: 
Finding the bounding box of the foreground pixels: 
(Xmin_foreground _pixels,Xmax_foreground _pixels) 
(Ymin_foreground _pixels,Ymax_foreground _pixels) 
Converting the  original image to an image  without  a  margin  by  cropping  the 
original image using the obtained bounding box 
in="$1" 
ext=$(echo "$in"|sed 's/\./!/g'|sed 's/.*!//g'  ) 
name=$(echo "$in"|sed 's/\./!/g'|sed 's/!.*//g' ) 
if [[ $ext == "pdf" ]];then 
pdftoppm $in ppm 
convert ppm-1.ppm  -threshold 80%  $name.png 
else 
convert $in  -threshold 80%  $name.png 
fi 
convert  $name.png txt:-|grep -Evwhite|sed 's/:.*#/ /g;1d;s/,/ /g' > pixel.txt  
cat pixel.txt |awk '{print $1}'|sort -b -k1n,1 >x.txt 
cat pixel.txt |awk '{print $2}'|sort -b -k1n,1 >y.txt 
xs=$(cat x.txt |awk 'NR==1') 
xe=$(cat x.txt |awk 'END{print }') 
ys=$(cat y.txt |awk 'NR==1') 
ye=$(cat y.txt |awk 'END{print }') 
echo $ye $ys 
x=$(($xe-$xs)) 
y=$(($ye-$ys)) 
Foreground bounding box finding 
Cropping original image basedon bounding box of foreground pixels  
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Capable of adding PDF file navigation features to your VB.NET program. Capable of adding PDF file navigation features to your VB.NET program. How To Tutorials.
add a link to a pdf file; pdf edit hyperlink
C# PDF insert image Library: insert images into PDF in C#.net, ASP
application? To help you solve this technical problem, we provide this C#.NET PDF image adding control, XDoc.PDF for .NET. Similar
add links to pdf; pdf email link
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014) 
26 
Copyright ⓒ 2014 SERSC
convert $name.png -crop $x"x"$y"+"$xs"+"$ys $name"_without_margin.p f 
3.5. Skew Detection and Correction 
In some cases  during the process of scanning into a PDF document,the document may 
rotate slightly, reducing the PDF document layout analysis
accuracy. To address this issue 
askew detection and correction module is applied; this is performed before running the PDF 
document layout analysis. The application of this module, rather than obtaining the bounding 
box of the foreground pixels in the image, it extracts the following data from. Mpc image: 
X_in _Ymax_foreground_pixels 
Y_in_Xmin_foreground_pixels 
H=Height of the image 
#!/bin/bash 
in="$1" 
ext=$(echo "$in"|sed 's/\./!/g'|sed 's/.*!//g'  ) 
name=$(echo "$in"|sed 's/\./!/g'|sed 's/!.*//g' ) 
if [[ $ext == "pdf" ]];then 
pdftoppm $in ppm 
convert ppm-1.ppm  -threshold 80%  $name.png 
else 
convert $in  -threshold 80%   $name.png 
fi 
convert  $name.png txt:-|grep -Evwhite|sed 's/:.*#/ /g;1d;s/,/ /g' > pixel.txt  
cat pixel.txt |awk '{print $1}'|sort -b -k1n,1 >x.txt 
cat pixel.txt |awk '{print $2}'|sort -b -k1n,1 >y.txt 
xs=$(cat x.txt |awk 'NR==1') 
xe=$(cat x.txt |awk 'END{print }') 
ys=$(cat y.txt |awk 'NR==1') 
ye=$(cat y.txt |awk 'END{print }') 
x=$(($xe-$xs)) 
y=$(($ye-$ys)) 
convert $name.png -crop $x"x"$y"+"$xs"+"$ys $name"_without_margin.mpc" 
convert $name.png -crop $x"x"$y"+"$xs"+"$ys wm.txt 
cat  wm.txt|grep -Evwhite|sed 's/:.*#/ /g;1d;s/,/ /g'|awk '{print $1, $2}'  > wpixel.txt  
height=$(identify -format "%h"  $name"_without_margin.mpc") 
xs=$(cat wpixel.txt|sort -b -k1n,1|awk 'NR==1'|awk '{print $1}') 
ye=$(cat wpixel.txt|sort -b -k2n,2|awk '{print $2}'|awk 'END{print}') 
yxs=$(cat wpixel.txt|awk '$1=='$xs''|awk '{print $2}'|awk '{sum+=$1} END { print sum/NR}'|bc -l) 
xye=$(cat wpixel.txt|awk '$2=='$ye''|awk '{print $1}'|awk '{sum+=$1} END { print sum/NR}'|bc -l) 
delx=`echo "$xye" | bc -l` 
dely=`echo "$height-$yxs" | bc -l` 
tangant=`echo "$dely/$delx" | bc -l` 
roting=$(echo "scale=3;a($angle)/0.017453293" | bc -l) 
rotating_angle=$(($(echo $roting |awk '{printf "%d" ,$1+1}'))) 
convert $name"_without_margin.mpc" -rotate  -$rot $name"_unrotate.png"
Finding x in y _max and y in x_min 
Rotating angle Tangent calculation 
Arctangent calculation & rotating angle finding  
Rotating original image( 
rotating angle) 
C# PDF Page Insert Library: insert pages into PDF file in C#.net
By using reliable APIs, C# programmers are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel
change link in pdf; add links to pdf file
C# Image: C# Image Text Annotation Drawing & Inserting Tutorial
Q 2: I want to add a text annotation to my PDF document and I want the Q 3: Can RasterEdge C#.NET Image Text Annotation Library support adding a link to the
add hyperlink to pdf in preview; add a link to a pdf in preview
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014)  
Copyright ⓒ 2014 SERSC
27 
Figure 2. Rotating PDF Document 
4. Block Segmentation 
Block segmentation divides the page into logical blocks, preserving the reading order. In a 
double column document the OCR results would not keep the reading order. Block 
segmentation is responsible for identifyingthe extended vertical black lines or extended 
vertical whitespace as shown in Figure 3. 
Figure 3. Image Morophlogy Dilated and Eroded, Horizontal Block 
Segnentatuion and Combination of Vertical Horizontal Segmentation 
Block Segmentation utilizes the combination of morphological operations it is through the 
Image Morphology method that the  structure of the shapes within an image is able to be 
cleaned up and studied. This happens by comparing each pixel in the image with its neighbors 
in multiple ways, so as to add or remove, brighten or darken that pixel. When this is applied 
over a whole  image, even  repetitively,  specific  shapes can be found  and/or  removed and 
modified. If a pixel is white and is completely surrounded by other white pixels, this means 
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
pdf link to specific page; clickable links in pdf
VB.NET PDF insert text library: insert text into PDF content in vb
VB.NET PDF - Insert Text to PDF Document in VB.NET. Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program.
adding a link to a pdf; convert doc to pdf with hyperlinks
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014) 
28 
Copyright ⓒ 2014 SERSC
that that pixel is not on the edge of the image [8]. The entire process depends on the definition 
Kernel  that  defines  what  pixels  are  to  be  classed  as  neighbors  within  each  specific 
morphological method. The dilate operation returns the maximum value in the neighborhood 
while the erode operation returns the minimum value in the neighborhood using the following 
steps: 
1.  convert bin.mpc -morphology dilate:1    diamond   dilate.mpc 
2.  convert dilate.mpc   -morphology erode:5 diamond -clip-mask bin.mpcerode.mpc 
Morphology  helps  to  remove  non-interested  white  space  between  texts  and 
recognizeremained white space area as blocks separator. 
Since PDF document may contain different logical layout such as footer and multi columns, 
block segmentation must be done both vertical and horizontal as following: 
Considering horizontal white space area 
Running horizontal segmentation  
Considering vertical  white space area 
Applying vertical segmentation for all extracted horizontal segments 
_vertical() 
n=$1 
height=`convert $n"-hor.mpc" +gravity +repage -format '%[fx:u.h-1]' -identify original.mpc` 
width=`convert $n"-hor.mpc" +gravity +repage -format '%[fx:u.w-1]' -identify original.mpc` 
convert $n-hor.mpc -morphology dilate:1    diamond   dilate.mpc 
convertdilate.mpc   -morphology erode:5 diamond -clip-mask $n-hor.mpcerode.mpc 
convert erode.mpc txt:-|sed 's/:.*#/ /g;1d;s/,/ /g;s/white/1/g;s/black/0/g'|awk '{print $1,$2,$4}'|awk '{if 
( $3!=1) $3=0}{print $1,$2,$3}'>erode.txt 
y=$(cat erode.txt|sort -b -k2n,2|awk '$3==0'|awk '{  a[$2]++}END { for(i in a)  print i,a[i]}'|sort -b -
k2n,2|awk 'END{print $1}') 
xofy=$(cat erode.txt|sort -b -k2n,2|awk '$3==0 && $2=='$y''|sort -b -k1n,1 |awk '{print $1}'|awk  
'p{print $1,$1-p,p}{p=$1}{if (NR==1)print $1,$1,0}'|sort -b -k2n,2|awk  '{print $2}'|uniq|tail -n  
3|head -n 1) 
x=($(cat erode.txt|sort -b -k2n,2|awk '$3==0 && $2=='$y''|sort -b -k1n,1|awk '{print $1}'|awk  
'p{print $1,$1-p,p}{p=$1}{if (NR==1)print $1,$1,0}'|awk '$2>'$xofy''|awk '{print  $1}')) 
noy=${#x[@]} 
if [[ $noy -gt 0 ]];then 
for (( e=0;e<$(($noy));e++ )) 
do 
l=$(($e+1)) 
if [[ $e  -ne  $(($noy-1)) ]] ;then 
convert $n-hor.mpc -crop $((${x[$l]}-${x[$e]}))"x0+"${x[$e]}"+0" $n-ver$e.mpc 
else 
convert $n-hor.mpc -crop $(($width-${x[$e]}))"x0+"${x[$e]}"+0" $n-ver$e.mpc 
fi 
done 
else 
convert $n-hor.mpc $n-ver1.mpc 
fi 
convert $n-ver*.mpc -rotate 90  -background  blue -splice 1x3+0+0 -append   -rotate -90 result$n.mpc 
in="$1" 
Applying all horizontal segments to vertical segmentation function and obtaining blocks   
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
and editing functions, you can link to VB TIFF Pages Modifier. Opposite to page adding & inserting in powerful & profession imaging controls, PDF document, image
pdf email link; add links in pdf
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014)  
Copyright ⓒ 2014 SERSC
29 
height=`convert "$in" +gravity +repage -format '%[fx:u.h-1]' -identify original.mpc` 
convert "$in" -threshold 60% -fuzz 1% -trim +repage  -scale 50% bin.mpc 
convertbin.mpc -morphology dilate:1  
diamond   dilate.mpc 
convertdilate.mpc   -morphology erode:5 diamond -clip-mask bin.mpcerode.mpc 
mh=$(convert erode.mpc  txt:-|sed 's/:.*#/ /g;1d;s/,/ /g;s/white/1/g;s/black/0/g'|awk '{print 
$1,$2,$4}'|sort -b -k2n,2|awk '$3==1'|awk '{  a[$2]++}END { for(i in a)  print i,a[i]}'|sort -b -
k2n,2|awk 'END{print $2}') 
echo $mh 
x=($(convert  erode.mpc  txt:-|sed 's/:.*#/ /g;1d;s/,/ /g;s/white/1/g;s/black/0/g'|awk '{print 
$1,$2,$4}'|sort -b -k2n,2|awk '$3==1'|awk '{  a[$2]++}END { for(i in a)  print i,a[i]}'|sort -b -
k2n,2|awk ''$mh'-$2<5'|sort -b -k1n,1|awk '{print $1}'|awk 'p{print $1,p}{p=$1}'|awk '$1-$2!=1'|awk 
'{print $1}')) 
nox=${#x[@]} 
for (( e=0;e<$(($nox));e++ )) 
do 
l=$(($e+1)) 
if [[ $e  -ne  $(($nox-1)) ]] ;then 
convertbin.mpc -crop "0x"$((${x[$l]}-${x[$e]}))"+0+"${x[$e]} $e-hor.mpc 
else 
convertbin.mpc -crop "0x"$(($height-${x[$e]}))"+0+"${x[$e]} $e-hor.mpc 
fi 
done 
for (( v=0;v<$(($nox));v++ )) 
do 
_vertical $v 
done 
convert *-hor.mpc  -background red -splice 1x1+0+0 -append horizon.png 
convert result*.mpc  -background blue -splice 1x1+0+0 -append x:  
As in Figure 4 is shown this method is suitable for horizontal block segmentation 
For a bill document but during vertical segmentation over segmentation is occurred. 
Figure 4. Sample Bill Segmentation 
5. Text-Image Segmentation 
Morphology is also used in the separation textual components from graphical components 
in image documents. To separate the text from the image, first the binary image is dilated, 
Horizontal space area finding and performing  horizontal segmentation  
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014) 
30 
Copyright ⓒ 2014 SERSC
thenthe conditional eroding is performed on the dilated image using the original image as the 
mask until the image part is complete again. The original image is used as a mask to protect 
parts of the image from changes.It will restore all shapes that still have some seed part left, so 
only the image has been left. Since image parts contain fatter lines and larger blobs than text 
parts, images can be extracted by dilating the image until all letters are gone, but some parts 
of the image still remain 
convertBLOCKsegment.mpc -morphology dilate: 3 diamond dilated.mpc 
convertBLOCK_segment.mpc  -morphology  dilate:3  diamond  mpc:-|convert  mpc:- 
txt:-|grep -
Ev '#FFFFFF'|sed ‘1d;s/:.*//g;s/,/ /g’>rgb.txt 
xs=$(cat rgb0.txt|awk '{print $1}'|sort -b -k1n,1|awk 'NR==1') 
xe=$(cat rgb0.txt|awk '{print $1}'|sort -b -k1n,1 |awk END'{print}') 
ys=$(cat rgb0.txt| awk '{print $2}'|sort -b -k1n,1|awk 'NR==1')   
ye=$(cat rgb0.txt|awk '{print $2}'|sort -b -k1n,1|awk END'{print}') 
x=$(($xe-$xs));y=$(($ye-$ys)) 
convertBLOCK_segment  .mpc  -draw  "fill  white  rectangle  $xs,$ys  $xe,$ye"   
textonly.mpc 
convertBLOCKsegemnt.mpc -crop $x"x"$y"+"$xs"+"$ysimageonly .mpc 
Another method to extract textual part is: 
convertdilated.mpc 
-morphology 
erode:20 
diamond 
-clip-mask 
BLOCKsegment.mpceroded.mpc 
Finally using image contains only image and original image to obtain text only image:  
convert eroded.mpc -negate BLOCK_segment.mpc -compose plus -composite tesxtonly.png 
Figue.5. illustrates text and graphical component segmentation 
Figure 5. Text-Image Segmentation 
6. Line Segmentation 
Once the block segmentation and the text-image segmentation hasfinished executing,the 
line segmentation modules is executed generating all of the lines and bounding boxes. 
#!/bin/bash  
Dilating the BINARY block segmented   
Obtaining bounding box of graphical part  remaining in dilated image 
Making non textual part white, what left from original image is text  
Extracting image only from original image using its bounding box 
Eroding dilated image 
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014)  
Copyright ⓒ 2014 SERSC
31 
#One_Column_Page_Line_Segmentation 
in="$1" 
convert "$in" -threshold 60% -scale 50% bin.mpc 
convert bin.png txt:-|sed 's/:.*#/ /g;1d;s/,/ /g;s/white/1/g;s/black/0/g'|awk '{print 
$1,$2,$4}'>data.dat 
height=`convert bin.png +gravity +repage -format '%[fx:u.h-1]' -identify original.mpc` 
width=`convert bin.png +gravity +repage -format '%[fx:u.w-1]' -identify original.mpc` 
for (( i=0;i<=$height;i++ )) 
do 
hgap=$(cat data.dat|awk '$2=='$i''|awk '$3==1'|wc -l) 
diff=$(($hgap-$width)) 
if [[ ( $diff -lt 3)&&( $diff -gt -3)  ]]; then 
echo $i>>hgap.dat 
fi 
done 
‘base="bin.png"
cat hgap.dat|awk 'p{print $1,p,$1-pf}{p=$1}'|awk '$3>5'|awk 'p{print p,$2,NR}{p=$2}'|awk 
'{print "convert  '$base' -crop  0x"$2-$1"+0+"$1"  line"$3".png"}'>>crop.sh 
chmod +x crop.sh 
./crop.sh 
convert line*.png  -background red -splice 0x1+0+0 -append x: 
Figure 6. Matematical PDF  Line Segmentation 
The bounding box for each line is represented by a pair of coordinate values: 
Binarization and scaling 
Pixel coordinate value(x,y) and color extraction, considering  1 for  background and 0 for foreground 
Obtain exact image size 
Finding all lines with background  colour  as horizontal gaps 
Crop original image based on horizontal gaps position to create line segments. 
International Journal of Signal Processing, Image Processing and Pattern Recognition 
Vol.7, No.4 (2014) 
32 
Copyright ⓒ 2014 SERSC
)(
or ( 
,
,
,
)all following lines properties can be collected and used to 
logical layout analysis and generate appropriate tag for PDF components. 
Line Intention =Left Margin=lm=
h=
or h=$(identify-
format “%h” line.bin.png)
w=
or w=$(identify-
format “%w” line.bin.png)
Right Margin=rm=w- 
White Spaces=ws 
Vertical Spaces Between Lines=vs 
no of recognized character=$(cat line.txt|sed ‘s/ //g’|sed ‘s/!//g’|wc –
c) 
Character Recognition Ratio= crr = number of recognized character /w 
aspect-ratio =ar=w/h 
mean ( vs)=1/n(
ws=$(convert line.png txt:-|grep 
c FFFFFF)  : based on number of white pixels in line 
segment 
=
+
)/2 
ratio(lm) =
/min(lm) 
=1/n
ratio(h)=h/mean(h) 
In terms of line segmentation accuracy in mathematical PDF documents, the lines have been 
divided into four categories as follows:
Fully-Segmented: the line is completely segmented with its subscript or superscript. 
Figure 7. Full-Segmented  
Over-Segmented: the line is either split into more than one text-line, or partially 
detected. Figure 8 shows over -segmentation occurrence during ordinary line 
segmentation, which splits one line into two separate segments.
Figure 8. Over-Segmentation 
Under-Segmented: the line is merged with some other lines. Figure 9 illustrates a line 
segment which has been merged with the superscript of the previous line and 
subscript of the next line.
Figure 9. Under-Segmentation 
Documents you may be interested
Documents you may be interested