【问题标题】:Scala Breeze: can you create a DenseMatrix of Int Array elements?Scala Breeze:你能创建一个 Int Array 元素的 DenseMatrix 吗?
【发布时间】:2016-05-28 07:12:12
【问题描述】:

我刚刚发现 Scala Breeze 作为 Scala 应用程序的高性能线性代数库。

我想知道是否有办法以 Int Array 作为元素单元来初始化 DenseMatrix。

这是我尝试移植到 Breeze 的 OpenCV 功能:

val rgb_raw = Array[Byte] (....) //ByteArray RGB values dim 480x360
val rgb_mat = new Mat (360, 480, CvType.CV_8UC3)
rgb_mat.put(0,0,rgb_raw)

我希望事情像这样简单:

val rgb_mat = new DenseMatrix(360,480, rgb_raw)

val rgb_mat = new DenseMatrix[Array[Int,Int,Int]](360,480,rgb_raw)

我没有在文档中找到任何指向正确方向的内容。

【问题讨论】:

    标签: arrays scala opencv scala-breeze scalala


    【解决方案1】:

    这对我有用

    import breeze.linalg.DenseMatrix
    
    val range = 0 to 360*480
    
    val arr = range map(_=>0.toByte)).toArray
    
    new DenseMatrix(360,480, arr)
    
    res27: breeze.linalg.DenseMatrix[Byte] = 
    0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  ... (480 total)
    
    new DenseMatrix(360,480, range.toArray)
    
    res28: breeze.linalg.DenseMatrix[Int] = 
    0   360  720  1080  1440  1800  2160  2520  2880  3240  3600  ... (480 total)
    
    val arrr = range.map(_=>arr).toArray
    
    new DenseMatrix(360,480, arrr)
    
    res31: breeze.linalg.DenseMatrix[Array[Byte]] = 
    [B@30276fff  [B@30276fff  [B@30276fff  [B@30276fff  ... (480 total)
    

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 2018-06-18
      • 2014-02-12
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多