CUDA实现图像处理

1、BGR转为灰度图的CUDA demo

__global__ void Image2Gray(uchar* din, uchar* dout, int h, int w) {
    int i = threadIdx.x + blockDim.x*blockIdx.x;
    int j = threadIdx.y + blockDim.y*blockIdx.y;
    int idx = j*w + i;
    int idx3 = idx * 3;
    dout[idx] = 0.229* din[idx3 + 0] + 0.587*din[idx3 + 1] + 0.114*din[idx3 + 2];
}
int Img2GrayTestGPU() {
    bool display = true;
    cv::Mat img = cv::imread("C:/Users/Desktop/demo/res.jpg");
    cv::resize(img, img, cv::Size(480, 640));
    //cv::imshow("img", img);
    //cv::waitKey(0);
    int w = img.cols;
    int h = img.rows;
    int wh = w*h;
    int len_size = wh * 3;
    cv::Mat img_gray(h, w, CV_8UC1);

    uchar *gdata;
    cudaMalloc((void**)&gdata, sizeof(uchar)*wh);

    uchar *dataa;
    cudaMalloc((void**)&dataa, sizeof(uchar)*len_size);
    double gtct_time = (double)cv::getTickCount();

    cudaMemcpy(dataa, img.data, sizeof(uchar)*len_size, cudaMemcpyHostToDevice);

    dim3 threadPerBlock(32, 32);//block:t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值