我正在开发可以在玉米植物中运行并由罗盘传感器引导的机器人,但我想将相机应用为机器人的眼睛,并使用图像处理来检测运动的误差角度.
这是图像示例.
我使用以下步骤
第1步:我使用的当前技术是将颜色值转换为从此代码修改的HSV
步骤2:所以它将检测所选择的颜色,即褐色或污垢颜色,然后我收集最左右两个棕色或两个阵列中每个图像行的选定颜色(红点).
问题是如何过滤掉玉米叶之间的棕色像素或不在玉米路径中的其他区域?我应该在这个问题上学习或应用哪种算法或方法?
编辑1:使用Spektre的答案,它看起来更好
这是我用JAVA + 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) 所以,最后我已经将 BoofCV 安装到 Android Studio(本网站上的 Tx 到 Q&A)并且所有示例都通过打开弹出窗口(包括模板匹配和网络摄像头捕获)完美运行:
但是事件日志中的消息[说],“将项目迁移到 Gradle?该项目不使用 Gradle 构建系统。我们建议您迁移到使用 Gradle 构建系统。那么,我应该怎么做!?
我想通过网络摄像头创建模板匹配的应用程序。是否可以忽略上述警告消息来创建我的应用程序。!?
提前致谢。
template-matching android-studio android-gradle-plugin boofcv
我想反转和灰度图像.这是我原来的形象:

这是我想要实现的最终结果(使用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) 如何在我的 Android Studio 项目中导入 BoofCV?我已经看过这里了。我完全困惑了。请为我提供分步指南。我感谢您的帮助。