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
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)
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