mirror of
https://github.com/jlengrand/Tippy.git
synced 2026-03-10 08:51:16 +00:00
Finishes simple_region_growing insertion
Some errors corrected in function code. Adds "real life" tests with an image an non zero pixels count. Examples to be added soon, with mouse value operations. Signed-off-by: Julien Lengrand-Lambert <julien@lengrandlambert.fr>
This commit is contained in:
BIN
tippy/data/gnu.jpg
Normal file
BIN
tippy/data/gnu.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
@@ -8,6 +8,7 @@ Created on Nov 26, 2011
|
||||
'''
|
||||
import sys
|
||||
import cv
|
||||
import numpy
|
||||
|
||||
def simple_region_growing(img, seed, threshold=1):
|
||||
"""
|
||||
@@ -31,7 +32,7 @@ def simple_region_growing(img, seed, threshold=1):
|
||||
raise ValueError("(%s) Positive value expected!" % (sys._getframe().f_code.co_name))
|
||||
# seed tests
|
||||
if not((isinstance(seed, tuple)) and (len(seed) is 2) ) :
|
||||
raise ValueError("(%s) (x, y) variable expected!" % (sys._getframe().f_code.co_name))
|
||||
raise TypeError("(%s) (x, y) variable expected!" % (sys._getframe().f_code.co_name))
|
||||
|
||||
dims = cv.GetSize(img)
|
||||
if (seed[0] or seed[1] ) < 0 :
|
||||
@@ -56,7 +57,7 @@ def simple_region_growing(img, seed, threshold=1):
|
||||
cur_pix = [seed[0], seed[1]]
|
||||
|
||||
#Spreading
|
||||
while(dist<thres and size<pix_area):
|
||||
while(dist<threshold and size<pix_area):
|
||||
#adding pixels
|
||||
for j in range(4):
|
||||
#select new candidate
|
||||
|
||||
@@ -23,7 +23,7 @@ class Test(unittest.TestCase):
|
||||
|
||||
self.dims = cv.GetSize(self.img_1c)
|
||||
|
||||
self.neg_thres = -0
|
||||
self.neg_thres = -10
|
||||
self.bad_thres = "A"
|
||||
|
||||
self.seed = (10, 10)
|
||||
@@ -53,10 +53,14 @@ class Test(unittest.TestCase):
|
||||
self.assertRaises(TypeError, lambda: se.simple_region_growing(self.img_1c, self.bad_seed))
|
||||
self.assertRaises(TypeError, lambda: se.simple_region_growing(self.img_1c, self.long_seed))
|
||||
# output test
|
||||
out_img = simple_region_growing(self.img_1c, self.seed)
|
||||
out_img = se.simple_region_growing(self.img_1c, self.seed)
|
||||
self.assertEqual(out_img.depth, cv.IPL_DEPTH_8U)
|
||||
self.assertEqual(out_img.nChannels, 1)
|
||||
self.assertEqual(cv.GetSize(out_img), cv.GetSize(self.img_1C))
|
||||
self.assertEqual(cv.GetSize(out_img), cv.GetSize(self.img_1c))
|
||||
# function result tests
|
||||
img_gnu = cv.LoadImage("../data/gnu.jpg", cv.CV_LOAD_IMAGE_GRAYSCALE) # 1 channel image
|
||||
out_img = se.simple_region_growing(img_gnu, seed=(70, 106), threshold=20)
|
||||
self.assertEqual(cv.CountNonZero(out_img), 584)
|
||||
|
||||
#if __name__ == "__main__":
|
||||
#import sys;sys.argv = ['', 'Test.testName']
|
||||
|
||||
Reference in New Issue
Block a user