Пример #1
0
	def loadCL(self, filepath):
		print("Loading OpenCL Kernel")
		self.kernel_file = open(filepath, "r")
		buildDir = self.getDir(filepath)

		self.build_options = ""
		self.build_options = self.build_options + "-I "+buildDir
		self.build_options = self.build_options + " -D VGL_SHAPE_NCHANNELS={0}".format(vc.VGL_SHAPE_NCHANNELS())
		self.build_options = self.build_options + " -D VGL_SHAPE_WIDTH={0}".format(vc.VGL_SHAPE_WIDTH())
		self.build_options = self.build_options + " -D VGL_SHAPE_HEIGHT={0}".format(vc.VGL_SHAPE_HEIGHT())
		self.build_options = self.build_options + " -D VGL_SHAPE_LENGTH={0}".format(vc.VGL_SHAPE_LENGTH())
		self.build_options = self.build_options + " -D VGL_MAX_DIM={0}".format(vc.VGL_MAX_DIM())
		self.build_options = self.build_options + " -D VGL_ARR_SHAPE_SIZE={0}".format(vc.VGL_ARR_SHAPE_SIZE())
		self.build_options = self.build_options + " -D VGL_ARR_CLSTREL_SIZE={0}".format(vc.VGL_ARR_CLSTREL_SIZE())
		self.build_options = self.build_options + " -D VGL_STREL_CUBE={0}".format(vc.VGL_STREL_CUBE())
		self.build_options = self.build_options + " -D VGL_STREL_CROSS={0}".format(vc.VGL_STREL_CROSS())
		self.build_options = self.build_options + " -D VGL_STREL_GAUSS={0}".format(vc.VGL_STREL_GAUSS())
		self.build_options = self.build_options + " -D VGL_STREL_MEAN={0}".format(vc.VGL_STREL_MEAN())

		#print("Build Options:\n", self.build_options)

		# READING THE HEADER FILES BEFORE COMPILING THE KERNEL
		for file in glob.glob(buildDir+"/*.h"):
			self.pgr = cl.Program(self.ctx, open(file, "r"))

		if ((self.builded == False)):
			self.pgr = cl.Program(self.ctx, self.kernel_file.read())
			self.pgr.build(options=self.build_options)
			#self.pgr.build()
			self.builded = True
		else:
			print("Kernel already builded. Going to next step...")

		self.kernel_file.close()
Пример #2
0
    def asVglClStrEl(self):
        result = VglClStrEl()
        shape = self.vglShape.asVglClShape()

        size = self.getSize()
        if (size > vc.VGL_ARR_CLSTREL_SIZE()):
            print(
                "Error: structuring element size > VGL_ARR_CLSTREL_SIZE. Change this value in vglClStrEl.h to a greater one."
            )

        result.ndim = np.int32(self.vglShape.getNdim())
        result.size = np.int32(self.vglShape.getSize())

        for i in range(0, vc.VGL_MAX_DIM() + 1):
            result.shape[i] = np.int32(shape.shape[i])
            result.offset[i] = np.int32(shape.offset[i])

        for i in range(0, size):
            result.data[i] = np.int32(self.data[i])

        return result
Пример #3
0
 def __init__(self, ndim=0, size=0):
     self.data = np.zeros((vc.VGL_ARR_CLSTREL_SIZE()), np.float32)
     self.ndim = np.int32(0)
     self.shape = np.zeros((vc.VGL_ARR_SHAPE_SIZE()), np.int32)
     self.offset = np.zeros((vc.VGL_ARR_SHAPE_SIZE()), np.int32)
     self.size = np.int32(0)