Example #1
0
    def run(self):
#        segmentLine=ToLines()
        img=cv.LoadImage("/home/sushil/input.jpg",cv.CV_LOAD_IMAGE_GRAYSCALE)
        
        #Converting to Binary Image
        convertToBinary=ConvertToBinaryImage()
        binaryImg=convertToBinary.convert(img,120)
        cv.ShowImage("Binary image", binaryImg)
        
        #Extracting line segments
        lineSegment=ToLines()
        lineSegment.segment(binaryImg)
        #cv.ShowImage("LineSegment",lineSegment.getLineSegment(3))
        lineImg=lineSegment.getLineSegment(1)
        lineImg2=lineSegment.getLineSegment(2)
        lineImg3=lineSegment.getLineSegment(3)
        totalLines=lineSegment.segment(lineImg)
        
        #for lineNum in range(totalLines):
        #    lineRowRange=lineSegment.getCoordinatesOfLineSegment(lineNum)
        
        charSegment=ToCharacters()            
        Img_split=charSegment.splitDika(binaryImg)
        cv.ShowImage("LineSegment2",Img_split)    
        
#        lineSegment.segment(binaryImg)
#        lineImg=lineSegment.getLineSegment(3)
        
        modifiers=Modifiers()
        #modifiers.locateDika(lineImg)
        modifiers.extractTop(lineImg)
        
        whiteSpace=cv.CreateImage((20,lineImg.height), lineImg.depth, lineImg.nChannels)
        cv.Set(whiteSpace,255)
        cv.ShowImage("White", whiteSpace)
        mergeImage=MergeImages()
        mergeImage2=MergeImages()
        
        mergedImg=mergeImage2.mergeVertically([lineImg,lineImg2])
        addSpace=AddSpace()
        mergedImg=addSpace.addWhiteSpace(lineImg, [10,20,40,50], 10)
        cv.ShowImage("MERGED", mergedImg)
Example #2
0
    def addWhiteSpace(self, lineImg, positionList, width):
        mergedImage = lineImg
        splitImage = list()
        mergeImages = MergeImages()
        index = 0
        positionList.append(positionList[-1])
        for position in positionList:
            if (index == 0):
                startpos = 0
            else:
                startpos = positionList[index - 1]

            #print position,"-",startpos," ",position-startpos

            tempImg = cv.CreateImage((position - startpos, lineImg.height),
                                     lineImg.depth, lineImg.nChannels)
            whiteSpace = cv.CreateImage((width, lineImg.height), lineImg.depth,
                                        lineImg.nChannels)
            cv.Set(whiteSpace, 255)
            #create new image variable

            cv.SetImageROI(
                lineImg, (startpos, 0, position - startpos,
                          lineImg.height))  #startpos, startpos, width, height
            #print cv.GetImageROI(lineImg)
            #print "ht=",tempImg.height
            #print "wd=",tempImg.width

            #copy roi in that new image variable
            cv.Copy(lineImg, tempImg)

            splitImage.append(tempImg)
            splitImage.append(whiteSpace)
            cv.ResetImageROI(lineImg)
            index = index + 1
        cv.ShowImage("SPLIT", splitImage[0])
        merged = mergeImages.mergeHorizontally(splitImage)
        return merged