小编leo*_*mme的帖子

如何更改numpy数组中的像素值

我有一个大的RGB图像作为一个numpy数组,我想将所有具有R = 0,G = 0,B = 0的像素设置为R = 255,G = 0,B = 0。最快的方法是什么?我试过了:

for pix in result:
    if np.all(np.logical_and(pix[0]==pix[1],pix[2]==0,pix[2]==pix[1])):
        pix [0] = 255
Run Code Online (Sandbox Code Playgroud)

但是以这种方式,我没有一个像素。有没有不重复索引的类似方法?

python numpy python-2.7

2
推荐指数
1
解决办法
4082
查看次数

cudaMemcpyToSymbol表现

我有一些函数可以在常量设备内存中加载变量并启动内核函数.我注意到第一次将一个变量加载到常量内存中时需要0.6秒,但是常量内存上的下一个加载非常快(0.0008秒).无论哪个函数是main中的第一个函数,都会出现此行为.下面是一个示例代码:

        __constant__ double res1;

        __global__kernel1(...) {...}

        void function1() {
            double resHost = 255 / ((double) size);
            CUDA_CHECK_RETURN(cudaMemcpyToSymbol(res1, &resHost, sizeof(double)));


            //prepare and launch kernel
        }

        __constant__ double res2;

        __global__kernel2(...) {...}

        void function2() {
            double resHost = 255 / ((double) size);
            CUDA_CHECK_RETURN(cudaMemcpyToSymbol(res2, &resHost, sizeof(double)));


            //prepare and launch kernel
        }

        int main(){
            function1(); //takes 0.6 seconds for loading
            function2(); // takes 0.0008 seconds for loading
            function1(); //takes 0.0008 seconds for loading

            return 0;
        }
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我可以避免吗?

cuda gpu-programming gpu-constant-memory

1
推荐指数
1
解决办法
83
查看次数