2016-03-31 4 views
1

Ich habe gerade Scala Breeze als eine leistungsstarke lineare Algebra-Bibliothek für Scala-Anwendungen gefunden.Scala Breeze: Können Sie eine DenseMatrix von Int Array-Elementen erstellen?

Ich frage mich, ob es eine Möglichkeit gibt, eine DenseMatrix mit einem Int Array als Element Einheit zu initialisieren.

Dies ist die OpenCV Funktionalität i Port versuche zu Breeze:

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) 

Ich wünschte, es etwas so einfach wie war:

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

oder

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

I haven Ich habe nichts in der Dokumentation gefunden, das mich in die richtige Richtung weist.

Antwort

0

Dies funktioniert für mich

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]] = 
[[email protected] [[email protected] [[email protected] [[email protected] ... (480 total)