def cmpFG(fgmask, fgmaskideal): '''Returns tuple (tp,tn,fp,fn)''' notfgmask = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmask, notfgmask) notfgmaskideal = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmaskideal, notfgmaskideal) res = opencv.cvCloneMat(fgmask) opencv.cvAnd(fgmask, fgmaskideal, res) tp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask, notfgmaskideal, res) tn = opencv.cvCountNonZero(res) opencv.cvAnd(fgmask, notfgmaskideal, res) fp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask, fgmaskideal, res) fn = opencv.cvCountNonZero(res) return (tp, tn, fp, fn)
def cmpFG(fgmask,fgmaskideal): '''Returns tuple (tp,tn,fp,fn)''' notfgmask = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmask,notfgmask) notfgmaskideal = opencv.cvCloneMat(fgmask) opencv.cvNot(fgmaskideal,notfgmaskideal) res = opencv.cvCloneMat(fgmask) opencv.cvAnd(fgmask,fgmaskideal,res) tp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask,notfgmaskideal,res) tn = opencv.cvCountNonZero(res) opencv.cvAnd(fgmask,notfgmaskideal,res) fp = opencv.cvCountNonZero(res) opencv.cvAnd(notfgmask,fgmaskideal,res) fn = opencv.cvCountNonZero(res) return (tp,tn,fp,fn)
def mask(img, img_mask): dim = img.width, img.height depth = img.depth channels = img.nChannels r_chan = cv.cvCreateImage(cv.cvSize(*dim), depth, 1) g_chan = cv.cvCreateImage(cv.cvSize(*dim), depth, 1) b_chan = cv.cvCreateImage(cv.cvSize(*dim), depth, 1) combined = cv.cvCreateImage(cv.cvSize(*dim), depth, 3) cv.cvSplit(img, r_chan, g_chan, b_chan, None) cv.cvAnd(r_chan, img_mask, r_chan) cv.cvAnd(g_chan, img_mask, g_chan) cv.cvAnd(b_chan, img_mask, b_chan) cv.cvMerge(r_chan, g_chan, b_chan, None, combined) return combined