【问题标题】:Convert OpenCV Mat in Java to NumPy Array in Scala将 Java 中的 OpenCV Mat 转换为 Scala 中的 NumPy 数组
【发布时间】:2021-12-15 18:03:08
【问题描述】:

我在 Scala 中有一个示例代码库,我在其中使用 OpenCV 和 ScalaPy 进行一些图像分类。这是代码位:

def loadImage(imagePath: String): Image = {
  // 0. Load the image and extract class label where a path to the image is assumed to be
  // /path/to/dataset/{class}/{image}.jpg
  val matrix: Mat = imread(imagePath)
  val label = imagePath.split("")

  // 1. Run the loaded image through the preprocessors, resulting in a feature vector
  //val preProcessedImagesWithLabels = Seq(new ImageResizePreProcessor(appCfg)).map(preProcessor => (preProcessor.preProcess(matrix), label))
  val preProcessedImagesWithLabels = Seq(new ImageResizePreProcessor(appCfg)).map(preProcessor => preProcessor.preProcess(matrix))
  np.asarray(preProcessedImagesWithLabels)
}

但是它失败了,因为它找不到 NumPy 的隐式转换器:

[error] /home/joesan/Projects/Private/ml-projects/object-classifier/src/main/scala/com/bigelectrons/animalclassifier/ImageLoader.scala:10:34: not found: type NumPy
[error]   val np = py.module("numpy").as[NumPy]

除了进口还有什么?

  "me.shadaj" %% "scalapy-numpy" % "0.1.0",
"me.shadaj" %% "scalapy-core" % "0.5.0",

【问题讨论】:

    标签: scala numpy opencv scalapy


    【解决方案1】:

    尝试使用最新的“开发”版本的 scalapy-numpy:0.1.0+6-14ca0424

    所以更改 sbt 构建:

    libraryDependencies += "me.shadaj" %% "scalapy-numpy" % "0.1.0+6-14ca0424"
    

    我在 ammonite 中尝试这个脚本:

    import me.shadaj.scalapy.numpy.NumPy 
    import me.shadaj.scalapy.py 
    
    val np = py.module("numpy").as[NumPy] 
    
    

    它似乎按预期找到了NumPy

    【讨论】:

    猜你喜欢
    • 2019-10-23
    • 2015-06-27
    • 2016-10-22
    • 2013-08-27
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2014-12-28
    • 2011-11-27
    相关资源
    最近更新 更多