Opencv 透明绘图-性能问题

Opencv 透明绘图-性能问题,opencv,Opencv,我使用此代码在一些cv::Mat上以透明方式绘制线条,其中Alpha对于每条线条都是不同的: cv::Mat render(){ for(size_t i=0;i<n;++i){ auto trasparent_layer = canava.clone(); cv::line(trasparent_layer, lines[i].p1, lines[i].p2, color, 10); const auto alpha = get_a

我使用此代码在一些
cv::Mat
上以透明方式绘制线条,其中Alpha对于每条线条都是不同的:

cv::Mat render(){
    for(size_t i=0;i<n;++i){
        auto trasparent_layer = canava.clone();
        cv::line(trasparent_layer, lines[i].p1, lines[i].p2, color, 10);
        const auto alpha = get_alpha(i); //Alpha is different for each line
        cv::addWeighted(trasparent_layer, alpha, canava, 1-alpha, 0, canava);
    }
    return canava;
}
cv::Mat render(){

对于(size_t i=0;i使用LineIterator并手动混合线条上的每个像素?)faster@Miki谢谢,这很有趣。我以前不知道。尝试..您可以看到使用LineIterator的示例,我们刚刚实现并尝试了它..LineIterator是一个非常有用的工具。但是,我最近发现我需要笔划宽度的线条。不仅仅是1像素宽度线:(如果这个想法可行的话,你可以1)使用Bresenham算法,或者2)在LineIterator上为你的每个点画一个给定半径的圆。。。