【问题标题】:How to acces all pixels under a QPainterPath如何访问 QPainterPath 下的所有像素
【发布时间】:2014-04-04 10:53:13
【问题描述】:

谁能告诉我如何访问QPainterPath 下的所有像素?

QPainterPath 的元素有一些类似isLineTo() 的方法,所以我的第一个想法是创建一个具有起点和终点的线性函数。但是,如果路径包含一条垂直线,那就有问题了。

问候

//更新

也许这是一个更好的问题: 如何在图像上绘制线性路径并从中收集所有点?

【问题讨论】:

  • 也许QPainterPath::elementAt(int) 能帮上忙?
  • 此方法不会返回路径的每个像素。路径仅包含航点(元素)。每个元素都有isLineTo()isCurveTo()isMoveTo()等方法
  • 我感觉你问错了问题。首先描述你的问题/你想做什么。不要问我们如何解决一些神秘问题的解决方案(我很确定您的解决方案是错误的,或者对于您不想描述的任务来说太复杂了)。
  • 是的,也许这是一个错误的问题。我已经更新了
  • @501-notimplemented,如果您有纯色背景并在其上画一条线(黑色笔),您可以扫描生成的图像并提取所有具有黑色的像素 - 只是一个想法。

标签: c++ qt image-processing drawing


【解决方案1】:

我找到了一种从一条线上获取所有点的高效解决方案:

            QLineF line(lastPoint,currentPoint);
            for (int var = 0; var < line.length(); ++var) {
                x=line.x1()+var*cos(line.angle());
                y=line.y1()+var*sin(line.angle());
                //qDebug()<<x<<"  "<<y;

有了这个,我也可以从一条垂直线上得到点。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2011-11-24
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多