Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python图像像素访问速度非常慢_Python_Image Processing - Fatal编程技术网

Python图像像素访问速度非常慢

Python图像像素访问速度非常慢,python,image-processing,Python,Image Processing,我正在研究不同的变换编码,比如DWT、DCT和DFT。在执行时间方面,我一直在质疑我使用的数据结构方法。下面是一个例子,假设我想分析图像中的每个像素,也许是为了执行某种编码。我在这里所做的就是将每个像素加载到同一个变量“a”上,以演示一个非常通用的示例。这个代码片段大约需要66毫秒,这对我来说相当慢。当涉及到单个像素的读写时,是否有更好的图像处理方法 class Example(): def __init__(self): self.load_image("lena_312

我正在研究不同的变换编码,比如DWT、DCT和DFT。在执行时间方面,我一直在质疑我使用的数据结构方法。下面是一个例子,假设我想分析图像中的每个像素,也许是为了执行某种编码。我在这里所做的就是将每个像素加载到同一个变量“a”上,以演示一个非常通用的示例。这个代码片段大约需要66毫秒,这对我来说相当慢。当涉及到单个像素的读写时,是否有更好的图像处理方法

class Example():

   def __init__(self):
       self.load_image("lena_312.png") #312 by 312

    def load_image(self, directory):
       self.img = cv2.imread(directory)
       self.height,self.width,self.channel = self.img.shape
       self.img_org = np.matrix(self.img[:,:,0]) #Image is greyscale

    def test(self):
       for j in range(0,self.height):
           for i in range(0,self.width):
                a = self.img_org[j,i]

if __name__ == "__main__":
    EX = Example()
    start = time.time()
    EX.test()
    print time.time()-start

纯Python每像素访问速度预计会非常慢。Python列表和Python整数对于通常依赖于CPU缓存和管道的数字密集型操作有着巨大的开销


如果必须用无限制的Python编写自定义算法,请考虑使用或至少尝试使用。

Python是一种很棒的粘合语言,但像素循环需要更快的速度。人们通常使用C/C++来提高性能,但如果您习惯于Python,那么在中进行开发当然是相当痛苦的。我见过javascript被用于这类事情:速度惊人,如果你小心的话,就不会像大家说的那么糟糕。例如,这里有一个纯javascript格式的JPEG解码器