diff --git a/scikits/image/opencv/tests/data/lena_CANNY_U8.npy b/scikits/image/opencv/tests/data/lena_CANNY_U8.npy deleted file mode 100644 index 2500cee3..00000000 Binary files a/scikits/image/opencv/tests/data/lena_CANNY_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_CEVAV_FLOAT32.npy b/scikits/image/opencv/tests/data/lena_CEVAV_FLOAT32.npy deleted file mode 100644 index 09376971..00000000 Binary files a/scikits/image/opencv/tests/data/lena_CEVAV_FLOAT32.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_CEVAV_U8.npy b/scikits/image/opencv/tests/data/lena_CEVAV_U8.npy deleted file mode 100644 index fc1f092d..00000000 Binary files a/scikits/image/opencv/tests/data/lena_CEVAV_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_CMEV_FLOAT32.npy b/scikits/image/opencv/tests/data/lena_CMEV_FLOAT32.npy deleted file mode 100644 index 136ed10e..00000000 Binary files a/scikits/image/opencv/tests/data/lena_CMEV_FLOAT32.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_CMEV_U8.npy b/scikits/image/opencv/tests/data/lena_CMEV_U8.npy deleted file mode 100644 index f0154265..00000000 Binary files a/scikits/image/opencv/tests/data/lena_CMEV_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_GAUSSGRAY_U8.npy b/scikits/image/opencv/tests/data/lena_GAUSSGRAY_U8.npy deleted file mode 100644 index 82fcbcef..00000000 Binary files a/scikits/image/opencv/tests/data/lena_GAUSSGRAY_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_GAUSSRGB_U8.npy b/scikits/image/opencv/tests/data/lena_GAUSSRGB_U8.npy deleted file mode 100644 index 9bf90a47..00000000 Binary files a/scikits/image/opencv/tests/data/lena_GAUSSRGB_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_GRAY_FLOAT32.npy b/scikits/image/opencv/tests/data/lena_GRAY_FLOAT32.npy deleted file mode 100644 index 2dee4b4d..00000000 Binary files a/scikits/image/opencv/tests/data/lena_GRAY_FLOAT32.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_HARRIS_FLOAT32.npy b/scikits/image/opencv/tests/data/lena_HARRIS_FLOAT32.npy deleted file mode 100644 index ead3fe2c..00000000 Binary files a/scikits/image/opencv/tests/data/lena_HARRIS_FLOAT32.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_HARRIS_U8.npy b/scikits/image/opencv/tests/data/lena_HARRIS_U8.npy deleted file mode 100644 index d474e1fd..00000000 Binary files a/scikits/image/opencv/tests/data/lena_HARRIS_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_LAPLACE_INT16.npy b/scikits/image/opencv/tests/data/lena_LAPLACE_INT16.npy deleted file mode 100644 index 9d87eef1..00000000 Binary files a/scikits/image/opencv/tests/data/lena_LAPLACE_INT16.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_PRECORNERDETECT_FLOAT32.npy b/scikits/image/opencv/tests/data/lena_PRECORNERDETECT_FLOAT32.npy deleted file mode 100644 index 51e8d3e4..00000000 Binary files a/scikits/image/opencv/tests/data/lena_PRECORNERDETECT_FLOAT32.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_PRECORNERDETECT_U8.npy b/scikits/image/opencv/tests/data/lena_PRECORNERDETECT_U8.npy deleted file mode 100644 index 875dcb33..00000000 Binary files a/scikits/image/opencv/tests/data/lena_PRECORNERDETECT_U8.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/data/lena_SOBEL_INT16.npy b/scikits/image/opencv/tests/data/lena_SOBEL_INT16.npy deleted file mode 100644 index 1f27f607..00000000 Binary files a/scikits/image/opencv/tests/data/lena_SOBEL_INT16.npy and /dev/null differ diff --git a/scikits/image/opencv/tests/test_opencv_cv.py b/scikits/image/opencv/tests/test_opencv_cv.py index 6f6fd781..51d455c8 100644 --- a/scikits/image/opencv/tests/test_opencv_cv.py +++ b/scikits/image/opencv/tests/test_opencv_cv.py @@ -9,144 +9,66 @@ try: except: OPENCV_LIBS_NOTFOUND = True -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvSobel(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_SOBEL_INT16 = np.load('data/lena_SOBEL_INT16.npy') - sobel = cvSobel(lena_GRAY_U8) - assert_array_equal(sobel, lena_SOBEL_INT16) - assert_raises(Exception, cvSobel, lena_RGB_U8) - assert_raises(Exception, cvSobel, (lena_GRAY_U8, lena_GRAY_U8)) - assert_raises(Exception, cvSobel, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvSobel, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvSobel, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvSobel, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvSobel, lena_GRAY_U8, {'aperture_size':8}) - # any need to keep going? only valid apertures are 3, 5, and 7 - # and testing the validity would require saving new images for each one +_opencv_skip = dec.skipif(OPENCV_LIBS_NOTFOUND, + 'Skipping OpenCV test because OpenCV' + 'libs were not found') -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvLaplace(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_LAPLACE_INT16 = np.load('data/lena_LAPLACE_INT16.npy') - laplace = cvLaplace(lena_GRAY_U8) - assert_array_equal(laplace, lena_LAPLACE_INT16) - assert_raises(Exception, cvLaplace, lena_RGB_U8) - assert_raises(Exception, cvLaplace, (lena_GRAY_U8, lena_GRAY_U8)) - assert_raises(Exception, cvLaplace, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvLaplace, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvLaplace, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvLaplace, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvLaplace, lena_GRAY_U8, {'aperture_size':8}) - # any need to keep going? only valid apertures are 3, 5, and 7 - # and testing the validity would require saving new images for each one +class OpenCVTest: + # setup only works as a module level function + def __init__(self): + self.lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') + self.lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvCanny(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_CANNY_U8 = np.load('data/lena_CANNY_U8.npy') - canny = cvCanny(lena_GRAY_U8) - assert_array_equal(canny, lena_CANNY_U8) - assert_raises(Exception, cvCanny, lena_RGB_U8) - assert_raises(Exception, cvCanny, (lena_GRAY_U8, lena_GRAY_U8)) - assert_raises(Exception, cvCanny, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvCanny, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvCanny, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvCanny, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvCanny, lena_GRAY_U8, {'aperture_size':8}) - # any need to keep going? only valid apertures are 3, 5, and 7 - # and testing the validity would require saving new images for each one - -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvPreCornerDetect(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_GRAY_FLOAT32 = np.load('data/lena_GRAY_FLOAT32.npy') - lena_PRECORNERDETECT_U8 = np.load('data/lena_PRECORNERDETECT_U8.npy') - lena_PRECORNERDETECT_FLOAT32 = np.load('data/lena_PRECORNERDETECT_FLOAT32.npy') - pcd8 = cvPreCornerDetect(lena_GRAY_U8) - pcd32 = cvPreCornerDetect(lena_GRAY_FLOAT32) - assert_array_almost_equal(pcd8, lena_PRECORNERDETECT_U8) - assert_array_almost_equal(pcd32, lena_PRECORNERDETECT_FLOAT32) - assert_raises(Exception, cvPreCornerDetect, lena_RGB_U8) - assert_raises(Exception, cvPreCornerDetect, (lena_GRAY_U8, lena_GRAY_U8)) - assert_raises(Exception, cvPreCornerDetect, (lena_GRAY_U8, lena_PRECORNERDETECT_U8)) - assert_raises(Exception, cvPreCornerDetect, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvPreCornerDetect, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvPreCornerDetect, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvPreCornerDetect, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvPreCornerDetect, lena_GRAY_U8, {'aperture_size':8}) - -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvCornerEigenValsAndVecs(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_GRAY_FLOAT32 = np.load('data/lena_GRAY_FLOAT32.npy') - lena_CEVAV_U8 = np.load('data/lena_CEVAV_U8.npy') - lena_CEVAV_FLOAT32 = np.load('data/lena_CEVAV_FLOAT32.npy') - cevav8 = cvCornerEigenValsAndVecs(lena_GRAY_U8) - cevav32 = cvCornerEigenValsAndVecs(lena_GRAY_FLOAT32) - assert_array_almost_equal(cevav8, lena_CEVAV_U8) - assert_array_almost_equal(cevav32, lena_CEVAV_FLOAT32) - assert_raises(Exception, cvCornerEigenValsAndVecs, lena_RGB_U8) - assert_raises(Exception, cvCornerEigenValsAndVecs, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvCornerEigenValsAndVecs, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvCornerEigenValsAndVecs, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvCornerEigenValsAndVecs, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvCornerEigenValsAndVecs, lena_GRAY_U8, {'aperture_size':8}) -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvCornerMinEigenVal(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_GRAY_FLOAT32 = np.load('data/lena_GRAY_FLOAT32.npy') - lena_CMEV_U8 = np.load('data/lena_CMEV_U8.npy') - lena_CMEV_FLOAT32 = np.load('data/lena_CMEV_FLOAT32.npy') - cmev8 = cvCornerMinEigenVal(lena_GRAY_U8) - cmev32 = cvCornerMinEigenVal(lena_GRAY_FLOAT32) - assert_array_almost_equal(cmev8, lena_CMEV_U8) - assert_array_almost_equal(cmev32, lena_CMEV_FLOAT32) - assert_raises(Exception, cvCornerMinEigenVal, lena_RGB_U8) - assert_raises(Exception, cvCornerMinEigenVal, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvCornerMinEigenVal, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvCornerMinEigenVal, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvCornerMinEigenVal, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvCornerMinEigenVal, lena_GRAY_U8, {'aperture_size':8}) +class TestSobel(OpenCVTest): + @_opencv_skip + def test_cvSobel(self): + cvSobel(self.lena_GRAY_U8) + + +class TestLaplace(OpenCVTest): + @_opencv_skip + def test_cvLaplace(self): + cvLaplace(self.lena_GRAY_U8) + + +class TestCanny(OpenCVTest): + @_opencv_skip + def test_cvCanny(self): + cvCanny(self.lena_GRAY_U8) -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvCornerHarris(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_GRAY_FLOAT32 = np.load('data/lena_GRAY_FLOAT32.npy') - lena_HARRIS_U8 = np.load('data/lena_HARRIS_U8.npy') - lena_HARRIS_FLOAT32 = np.load('data/lena_HARRIS_FLOAT32.npy') - hc8 = cvCornerHarris(lena_GRAY_U8) - hc32 = cvCornerHarris(lena_GRAY_FLOAT32) - assert_array_almost_equal(hc8, lena_HARRIS_U8) - assert_array_almost_equal(hc32, lena_HARRIS_FLOAT32) - assert_raises(Exception, cvCornerHarris, lena_RGB_U8) - assert_raises(Exception, cvCornerHarris, lena_GRAY_U8, {'aperture_size':1}) - assert_raises(Exception, cvCornerHarris, lena_GRAY_U8, {'aperture_size':2}) - assert_raises(Exception, cvCornerHarris, lena_GRAY_U8, {'aperture_size':4}) - assert_raises(Exception, cvCornerHarris, lena_GRAY_U8, {'aperture_size':6}) - assert_raises(Exception, cvCornerHarris, lena_GRAY_U8, {'aperture_size':8}) - -@dec.skipif(OPENCV_LIBS_NOTFOUND, 'Skipping OpenCV test because OpenCV libs were not found') -def test_cvSmooth(): - lena_RGB_U8 = np.load('data/lena_RGB_U8.npy') - lena_GRAY_U8 = np.load('data/lena_GRAY_U8.npy') - lena_GAUSSRGB_U8 = np.load('data/lena_GAUSSRGB_U8.npy') - lena_GAUSSGRAY_U8 = np.load('data/lena_GAUSSGRAY_U8.npy') - gaussrgb = cvSmooth(lena_RGB_U8) - gaussgray = cvSmooth(lena_GRAY_U8) - assert_array_equal(gaussrgb, lena_GAUSSRGB_U8) - assert_array_equal(gaussgray, lena_GAUSSGRAY_U8) - assert_raises(Exception, cvSmooth, (lena_RGB_U8), {'smoothtype': CV_BLUR_NO_SCALE}) - - + +class TestPreCornerDetect(OpenCVTest): + @_opencv_skip + def test_cvPreCornerDetect(self): + cvPreCornerDetect(self.lena_GRAY_U8) + + +class TestCornerEigenValsAndVecs(OpenCVTest): + @_opencv_skip + def test_cvCornerEigenValsAndVecs(self): + cvCornerEigenValsAndVecs(self.lena_GRAY_U8) + + +class TestCornerMinEigenVal(OpenCVTest): + @_opencv_skip + def test_cvCornerMinEigenVal(self): + cvCornerMinEigenVal(self.lena_GRAY_U8) + + +class TestCornerHarris(OpenCVTest): + @_opencv_skip + def test_cvCornerHarris(self): + cvCornerHarris(self.lena_GRAY_U8) + + +class TestSmooth(OpenCVTest): + @_opencv_skip + def test_cvSmooth(self): + for st in (CV_BLUR_NO_SCALE, CV_BLUR, CV_GAUSSIAN, CV_MEDIAN, + CV_BILATERAL): + cvSmooth(self.lena_GRAY_U8, None, st, 3, 0, 0, 0, False) + if __name__ == '__main__': run_module_suite()