【问题标题】:How to manipulate individual pixels in Mat image in OpenCV 3.0.0-1.1 Java API如何在 OpenCV 3.0.0-1.1 Java API 中操作 Mat 图像中的单个像素
【发布时间】:2015-12-16 14:46:31
【问题描述】:

到目前为止,以前版本的 OpenCV JAVA API 提供了 get()put() 方法来获取和操作 Mat 图像中的单个像素。但在 OpenCV 3.0.0-1.1 Java API 中,这些方法已被弃用。那么如何在这个版本中操作单个像素。

以下是已弃用方法的列表: http://bytedeco.org/javacpp-presets/opencv/apidocs/deprecated-list.html

当我在 HIPI v2.0(支持最新的 OpenCV API)中使用 put() 方法时,我收到以下错误:

Image showing the error

我可以做些什么来改变特定的像素(给定索引)?

【问题讨论】:

  • 请不要将 opencv 的 java 包装器与 bytedeco/javacv 混淆,2 完全不同的鞋子。
  • 我是 HIPI 和 Opencv 的新手(甚至是图像处理)。我不明白 bytedeco/javacv 到底是什么?bytedeco/javacpp 是 hipi 用来访问 opencv 的东西新版本中的方法,即 v2.0(它内置了对 opencv 的支持)

标签: opencv image-processing mat hipi


【解决方案1】:

推荐的方法是通过本文中介绍的Indexer
http://bytedeco.org/news/2014/12/23/third-release/

因此,以典型的 BGR/RGB 8 位图像为例:

UByteIndexer idx = mat.createIndexer();
idx.put(x, y, z, 255);
assert idx.get(x, y, z) == 255;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多