Ejemplo n.º 1
0
    def testPixelOutputSpace(self):

        i = IECore.Reader.create(
            "test/IECoreImage/data/tiff/singlePixelT.tif").read()

        o = IECoreImage.CurveTracer()
        c = o(image=i, channelName="R", minimumLength=0)

        self.assertEqual(
            c.bound(), IECore.Box3f(IECore.V3f(1, 7, 0), IECore.V3f(9, 11, 0)))
        self.failUnless(IECore.V3f(1, 7, 0) in c["P"].data)
        self.failUnless(IECore.V3f(7, 11, 0) in c["P"].data)
        self.failUnless(IECore.V3f(9, 7, 0) in c["P"].data)
Ejemplo n.º 2
0
    def testObjectOutputSpace(self):

        i = IECore.Reader.create(
            "test/IECoreImage/data/tiff/singlePixelT.tif").read()

        o = IECoreImage.CurveTracer()
        o["outputSpace"].setValue("object")
        c = o(image=i, channelName="R", minimumLength=0)

        self.failUnless(c.bound().min.equalWithAbsError(
            IECore.V3f(-6, -4, 0), 0.00001))
        self.failUnless(c.bound().max.equalWithAbsError(
            IECore.V3f(2, 0, 0), 0.00001))
Ejemplo n.º 3
0
    def test(self):

        i = IECore.Reader.create(
            "test/IECoreImage/data/tiff/toTrace.tif").read()

        o = IECoreImage.ImageThinner()
        o(input=i, copyInput=False, channels=IECore.StringVectorData(["R"]))

        o = IECoreImage.CurveTracer()
        c = o(image=i, channelName="R")

        e = IECore.CurvesPrimitiveEvaluator(c)
        r = e.createResult()

        size = i.dataWindow.size() + IECore.V2i(1)
        pixels = i["R"]
        pi = 0
        for y in range(0, size.y):
            for x in range(0, size.x):
                if pixels[pi] > 0.5:
                    pp = IECore.V3f(x, y, 0)
                    e.closestPoint(pp, r)
                    self.failUnless(abs((pp - r.point()).length()) < 3)
                pi += 1