Skip to content

Commit 54fae85

Browse files
committed
Add pipelines
1 parent ca8de14 commit 54fae85

File tree

5 files changed

+54
-0
lines changed

5 files changed

+54
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package Pipelines
2+
3+
import _root_.Algorithms.{Convolution, Invert}
4+
import breeze.linalg.DenseMatrix
5+
6+
object EdgeDetection extends Pipeline (
7+
List(
8+
new Convolution( DenseMatrix((-1.0, -1.0, -1.0), (-1.0, 8.0, -1.0), (-1.0, -1.0, -1.0))),
9+
new Invert()
10+
)) {}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package Pipelines
2+
3+
import _root_.Algorithms.{Denoiser, Convolution, Invert}
4+
import breeze.linalg.DenseMatrix
5+
6+
class GibbsDenoiser(denoiserRuns: Int) extends Pipeline (
7+
List(
8+
new Denoiser( denoiserRuns )
9+
)) {}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package Pipelines
2+
3+
import _root_.Algorithms.{Denoiser, Convolution, Invert}
4+
import breeze.linalg.DenseMatrix
5+
6+
class GibbsEdgeDetection(denoiserRuns: Int) extends Pipeline (
7+
List(
8+
new Denoiser( denoiserRuns ),
9+
new Convolution( DenseMatrix((-1.0, -1.0, -1.0), (-1.0, 8.0, -1.0), (-1.0, -1.0, -1.0))),
10+
new Invert()
11+
)) {}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package Pipelines
2+
3+
import _root_.Algorithms.MedianFilter
4+
import breeze.linalg.DenseMatrix
5+
6+
object MedianDenoiser extends Pipeline (
7+
List(
8+
MedianFilter,
9+
MedianFilter
10+
)) {}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package Pipelines
2+
3+
import breeze.linalg.DenseMatrix
4+
import Algorithms.Algorithm
5+
import scala.annotation.tailrec
6+
7+
class Pipeline(nodes: List[Algorithm]) extends Serializable {
8+
final def run (inputMatrix :DenseMatrix[Double], tasks: List[Algorithm] = nodes): DenseMatrix[Double] = {
9+
tasks match {
10+
case n::nodes => run( n.run(inputMatrix), nodes)
11+
case Nil => inputMatrix
12+
}
13+
}
14+
}

0 commit comments

Comments
 (0)