Beispiel #1
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
Beispiel #2
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)
Beispiel #3
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