标签: boofcv

如何从Image中检测机器人方向?

我正在开发可以在玉米植物中运行并由罗盘传感器引导的机器人,但我想将相机应用为机器人的眼睛,并使用图像处理来检测运动的误差角度.

这是图像示例.

处理过的图像 处理过的图像 原始图像 原始图像 分割图像 分割图像

我使用以下步骤

  1. 第1步:我使用的当前技术是将颜色值转换为从此代码修改的HSV

  2. 步骤2:所以它将检测所选择的颜色,即褐色或污垢颜色,然后我收集最左右两个棕色或两个阵列中每个图像行的选定颜色(红点).

  3. 步骤3:我将2线性回归线绘制为蓝点,并将交点计算为粉红点
  4. 第4步:绘制绿线以将粉红点与其他图像进行比较.我不知道该如何处理这条绿线
  5. 问题是玉米叶子之间也存在污垢或棕色,然后我让我的代码错过计算

问题是如何过滤掉玉米叶之间的棕色像素或不在玉米路径中的其他区域?我应该在这个问题上学习或应用哪种算法或方法?

编辑1:使用Spektre的答案,它看起来更好

这是我用JAVA + Boofcv应用它之后的结果

  • 第1步:阈值处理或颜色分割 阈值处理或颜色分割

  • 第2步:模糊(使用高斯和中值滤波器) 所迷离

  • 第3步:绘制线性回归 绘制线性回归

更多信息

完全代码在这里

LinearRegression类

具有相同过程的10个示例图像

java image-processing computer-vision boofcv

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

为什么BoofCV会不断向左侧旋转相机预览?

我正在尝试使用BoofCV Android Demo中的给定示例进行BoofCV线路检测.为此,我复制了这些类,并使用Android的Camera API设置了所有内容.虽然演示正在使用横​​向方向,但我的活动需要在纵向,但设置时相机向左旋转90°.当我尝试相应地设置相机时,没有任何反应.我用了:

  • Camera.setDisplayOrientation(90)
  • Camera.setParameters("orientation", "portrait")

过了一会儿,我发现它不是设备相关的(在不同的设备和API级别上测试),它也与Camera API没有任何关系(因为我在评论VideoProcessor.init()功能时设法得到了它).

尝试了一段时间后,我仍然无法弄清楚为什么VideoProcessor不断向左旋转图像......

这是我的代码VideoProcessor:

public class LineProcessor extends Thread implements VideoProcessing {

    /**
     * Lock for reading and writing images with processing and render
     */
    private final Object lockGui = new Object();

    /**
     * Lock used when converting the video stream.
     */
    private final Object lockConvert = new Object();

    private Paint mPaint;
    private ImageType<GrayU8> imageType;
    private GrayU8 image;
    private GrayU8 image2;
    private volatile boolean requestStop …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-canvas boofcv

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

本项目未使用 Gradle 构建系统警告将 Boofcv 导入 Android Studio

所以,最后我已经将 BoofCV 安装到 Android Studio(本网站上的 Tx 到 Q&A)并且所有示例都通过打开弹出窗口(包括模板匹配和网络摄像头捕获)完美运行:

截屏

但是事件日志中的消息[说],“将项目迁移到 Gradle?该项目不使用 Gradle 构建系统。我们建议您迁移到使用 Gradle 构建系统。那么,我应该怎么做!?

我想通过网络摄像头创建模板匹配的应用程序。是否可以忽略上述警告消息来创建我的应用程序。!?

提前致谢。

template-matching android-studio android-gradle-plugin boofcv

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

如何在Java中改进反转+灰度运算符?

我想反转和灰度图像.这是我原来的形象:
在此输入图像描述

这是我想要实现的最终结果(使用Paint.NET生成):
在此输入图像描述

但是使用在Internet上找到的一些(基本?)Java代码,我只能得到如下图: 在此输入图像描述

这是我使用的代码:

private static final byte[] invertTable;

static {
    invertTable = new byte[256];
    for (int i = 0; i < 256; i++) {
        invertTable[i] = (byte) (255 - i);
    }
}

private static BufferedImage grayScale(BufferedImage source) {
    ColorConvertOp grayScale = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);

    return grayScale.filter(source,null);
}

private static BufferedImage invertImage(final BufferedImage src) {
    final int w = src.getWidth();

    final int h = src.getHeight();

    final BufferedImage dst = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);

    final BufferedImageOp invertOp = new LookupOp(new ByteLookupTable(0, …
Run Code Online (Sandbox Code Playgroud)

java opencv image-processing grayscale boofcv

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

如何在Android Studio中使用BoofCV?

如何在我的 Android Studio 项目中导入 BoofCV?我已经看过这里了。我完全困惑了。请为我提供分步指南。我感谢您的帮助。

android-studio boofcv

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