I know this is a lot to ask, but can anyone please help me understand what
is happening, and possibly suggest approaches to fix my problem?

I am using the igraph library to solve an image processing problem. I wish
to identify two horizontal lines in an image using an S-T cut approach.

My approach works perfectly for a graph representing an image of a certain
(small) size. StMincuts of an image of 6xN pixels gives me the answer I
expect (in the second cut cut$partition1s[[2]]) however a 7xN pixel image
gives the 'wrong' answer. I'm guessing that the problem is probably to do
with the link weights but I'm not sure how to solve this.

I have uploaded two graphs in graphml format, one for a 6x10 image and one
for a 7x10 image along with the scripts and R image file used to create
them.
https://drive.google.com/folderview?id=0B9EhX8AShSIpeU5kN21DVUQyRHM&usp=sharing


Many thanks in advance,
Tom

g<-read.graph('graph_6x10.gml',format='graphml')

img<-matrix(0,nrow=6,ncol=10)
img[c(2,4),]<-1
szImg<-c(6,10)
numEl<-6*10


cut<-stMincuts(g,'s','t')

x1<-cut$partition1s[[1]]
x1<-x1[x1<=numEl*2]
x2<-cut$partition1s[[2]]
x2<-x2[x2<=numEl*2]

outimgS1p1<-matrix(0,nrow=szImg[1],ncol=szImg[2])
outimgS2p1<-matrix(0,nrow=szImg[1],ncol=szImg[2])
outimgS1p2<-matrix(0,nrow=szImg[1],ncol=szImg[2])
outimgS2p2<-matrix(0,nrow=szImg[1],ncol=szImg[2])

outimgS1p1[x1[x1<=numEl]]<-1
outimgS2p1[x1[x1>numEl]-numEl]<-1
outimgS1p2[x2[x2<=numEl]]<-1
outimgS2p2[x2[x2>numEl]-numEl]<-1

oldpar<-par(mfrow=c(5,1))
image(outimgS1p1,main='p1,s1')
image(outimgS2p1,main='p1,s2')
image(outimgS1p2,main='p2,s1')
image(outimgS2p2,main='p2,s2')
image(img)
par(oldpar)
_______________________________________________
igraph-help mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/igraph-help

Reply via email to