gpt4 book ai didi

c++ - 更快地将 Halide 图像转换为 opencv mat?

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:24 27 4
gpt4 key购买 nike

我正在尝试通过 mat.at(i,j) 将缓冲区图像转换为 opencv mat,但它运行 20 毫秒。它太慢了。如何提高速度?或另一种将缓冲区图像转换为 cv::的方法垫?

    Halide::Func gray;

Halide::Var x, y;

gray(x, y) = Halide::cast<uint8_t>( 0.299f * image(x, y, 0) +0.587f * image(x, y, 1) + 0.114f * image(x, y, 2));

Halide::Var xi,yi;
gray.tile(x,y,xi,yi,4,4).vectorize(xi,4).parallel(y);

Halide::Buffer<uint8_t> output = gray.realize(image.width(), image.height());

Mat h2m = Mat::zeros(image.height(),image.width(), CV_8UC1);

for( int i=0;i<image.height();i++){
for(int j=0;j<image.width();j++){
h2m.at<uchar>(i,j)=output(j,i);
}
}
imshow("gray",h2m);

最佳答案

只需将指针包装到 cv::Mat 数据:

Halide::Buffer<uint8_t> buf(img.data, width, height);

并在其中实现你的功能:

gray.realize(buf);

关于c++ - 更快地将 Halide 图像转换为 opencv mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45625936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com