def test_OpenCVToPIL(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) cv = im.asOpenCV() pil = Image(cv).asPIL() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(pil.getpixel((i,j))[c],ord(cv.tostring()[i*3+j*im.width*3+2-c]))
def test_BufferToOpenCV(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) cvim = im.asOpenCV() buffer = im.toBufferRGB(8) for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(ord(buffer[i*3+j*im.width*3+c]),ord(cvim.tostring()[i*3+j*im.width*3+2-c]))
def test_BufferToOpenCV(self): pil = self.im.asPIL().resize((180, 120)) im = Image(pil) cvim = im.asOpenCV() buffer = im.toBufferRGB(8) for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual( ord(buffer[i * 3 + j * im.width * 3 + c]), ord(cvim.tostring()[i * 3 + j * im.width * 3 + 2 - c]))
def test_OpenCVToPIL(self): pil = self.im.asPIL().resize((180, 120)) im = Image(pil) cv = im.asOpenCV() pil = Image(cv).asPIL() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual( pil.getpixel((i, j))[c], ord(cv.tostring()[i * 3 + j * im.width * 3 + 2 - c]))
def test_PILToOpenCV(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) cv = im.asOpenCV() #Uncomment this code to compare saved images #from opencv import highgui #highgui.cvSaveImage('/tmp/cv.png',cv) #pil.show() #Image('/tmp/cv.png').show() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(pil.getpixel((i,j))[c],ord(cv.tostring()[i*3+j*im.width*3+2-c]))
def test_PILToOpenCV(self): pil = self.im.asPIL().resize((180, 120)) im = Image(pil) cv = im.asOpenCV() #Uncomment this code to compare saved images #from opencv import highgui #highgui.cvSaveImage('/tmp/cv.png',cv) #pil.show() #Image('/tmp/cv.png').show() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual( pil.getpixel((i, j))[c], ord(cv.tostring()[i * 3 + j * im.width * 3 + 2 - c]))
def test_OpenCVToPILGray(self): pil = self.im.asPIL().resize((180,120)).convert('L') im = Image(pil) cv = im.asOpenCV() im = Image(cv) pil = im.asPIL()
def test_OpenCVToPILGray(self): pil = self.im.asPIL().resize((180, 120)).convert('L') im = Image(pil) cv = im.asOpenCV() im = Image(cv) pil = im.asPIL()
class _TestImage(unittest.TestCase): def setUp(self): # Assume these work correctly self.im = Image(os.path.join(pyvision.__path__[0],"data","nonface","NONFACE_46.jpg")) self.pil = self.im.asPIL() self.mat = self.im.asMatrix2D() assert self.mat.shape[0] == 640 assert self.mat.shape[1] == 480 self.mat3d = self.im.asMatrix3D() assert self.mat3d.shape[0] == 3 assert self.mat3d.shape[1] == 640 assert self.mat3d.shape[2] == 480 self.opencv = self.im.asOpenCV() def test_PILToBufferGray(self): w,h = self.im.size buffer = self.im.toBufferGray(8) self.assertEqual(len(buffer),w*h) buffer = self.im.toBufferGray(32) self.assertEqual(len(buffer),4*w*h) buffer = self.im.toBufferGray(64) self.assertEqual(len(buffer),8*w*h) def test_Matrix3DToBufferGray(self): im = Image(self.mat3d) w,h = im.size buffer = im.toBufferGray(8) self.assertEqual(len(buffer),w*h) buffer = im.toBufferGray(32) self.assertEqual(len(buffer),4*w*h) buffer = im.toBufferGray(64) self.assertEqual(len(buffer),8*w*h) def test_Matrix2DToBufferGray(self): im = Image(self.mat) w,h = im.size buffer = im.toBufferGray(8) self.assertEqual(len(buffer),w*h) buffer = im.toBufferGray(32) self.assertEqual(len(buffer),4*w*h) buffer = im.toBufferGray(64) self.assertEqual(len(buffer),8*w*h) def test_PILToMatrix2D(self): im = self.im pil = im.asPIL().convert('L') pil = pil.resize((180,120)) im = Image(pil) mat = im.asMatrix2D() for i in range(im.width): for j in range(im.height): self.assertAlmostEqual(pil.getpixel((i,j)),mat[i,j]) def test_Matrix2DToPIL(self): im = Image(self.mat[:180,:120]) pil = im.asPIL() mat = im.asMatrix2D() for i in range(im.width): for j in range(im.height): self.assertAlmostEqual(pil.getpixel((i,j)),mat[i,j]) def test_PILToMatrix3D(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) mat = im.asMatrix3D() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(pil.getpixel((i,j))[c],mat[c,i,j]) def test_Matrix3D2PIL(self): im = Image(self.mat3d[:,:180,:120]) pil = self.im.asPIL() mat = im.asMatrix3D() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(pil.getpixel((i,j))[c],mat[c,i,j]) def test_PILToOpenCV(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) cv = im.asOpenCV() #Uncomment this code to compare saved images #from opencv import highgui #highgui.cvSaveImage('/tmp/cv.png',cv) #pil.show() #Image('/tmp/cv.png').show() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(pil.getpixel((i,j))[c],ord(cv.tostring()[i*3+j*im.width*3+2-c])) def test_OpenCVToPIL(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) cv = im.asOpenCV() pil = Image(cv).asPIL() for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(pil.getpixel((i,j))[c],ord(cv.tostring()[i*3+j*im.width*3+2-c])) def test_OpenCVToPILGray(self): pil = self.im.asPIL().resize((180,120)).convert('L') im = Image(pil) cv = im.asOpenCV() im = Image(cv) pil = im.asPIL() #Uncomment this code to compare saved images #from opencv import highgui #highgui.cvSaveImage('/tmp/cv.png',cv) #pil.show() #Image('/tmp/cv.png').show() # TODO: There seems to be data loss in the conversion from pil to opencv and back. Why? #for i in range(im.width): # for j in range(im.height): # self.assertAlmostEqual(pil.getpixel((i,j)),ord(cv.imageData[i*3+j*im.width*3])) def test_BufferToOpenCV(self): pil = self.im.asPIL().resize((180,120)) im = Image(pil) cvim = im.asOpenCV() buffer = im.toBufferRGB(8) for i in range(im.width): for j in range(im.height): for c in range(3): self.assertAlmostEqual(ord(buffer[i*3+j*im.width*3+c]),ord(cvim.tostring()[i*3+j*im.width*3+2-c])) def test_asOpenCVBW(self): pass #TODO: Create tests for this method.