This notebook uses the Accord library for math, statistics, vision, and machine learning. It should be split up into many notebooks, but this is currently for testing.
from System import Array
import Accord
import Accord.Math
import clr
clr.ImportExtensions(Accord.Math)
Accord.Math.Matrix.Indices(0, 10)
from Accord.Math import Matrix
v = Matrix.Identity(3)
v
I = Array.CreateInstance(float, 2, 2)
I[0,0] = 1
I
u = Array[float]([1, 6])
v = Array[float]([-2, 10])
u.InnerProduct(v)
outer = u.OuterProduct(v)
outer
I.Multiply(u)
I.Multiply(v)
from Accord.Math.Decompositions import SingularValueDecomposition
i = SingularValueDecomposition(I)
i.Diagonal
from Processing import *
size(500, 500)
background(0)
smooth()
points = []
def drawPoint():
fill(255, 0, 0)
noStroke()
points.append([mouseX(), mouseY()])
ellipse(mouseX(), mouseY(), 5, 5)
onMouseDragged += drawPoint
loop()
def clear():
global points
points = []
background(0)
onKeyPressed += clear
points
data = Array.CreateInstance(float, len(points), len(points[0]))
for i in range(len(points)):
for j in range(len(points[i])):
data[i,j] = points[i][j]
print("# of points: ", data.Length)
from Accord.Statistics.Analysis import *
analysis = DescriptiveAnalysis(data)
ux,uy = analysis.Means
pca = PrincipalComponentAnalysis(data, AnalysisMethod.Center)
# Compute the Principal Component Analysis
pca.Compute()
stroke(0, 255,0)
strokeWeight(5)
for pc in pca.Components:
x,y = pc.Eigenvector.Multiply(pc.Eigenvalue**0.5)
line(ux - x, uy - y, ux + x, uy + y)
get()
for v in analysis.CovarianceMatrix:
print(v)
from AForge.Imaging.Filters import *
from Accord.Imaging.Filters import *
from AForge.Imaging import Image
from Graphics import *
from System.Drawing import Bitmap
from System.Drawing.Imaging import PixelFormat
p = Picture("http://roboteducation.org/images/header_home.jpg")
image = p.toBitmap() #Image.Clone(p.toBitmap(), PixelFormat.Format24bppRgb)
calico.display(p)
# Create a new Gabor filter
filter = GaborFilter()
# Apply the filter
output = filter.Apply(image)
calico.display(Picture(output))
filter = GaussianBlur( 4, 11 )
output = filter.Apply( image )
calico.display(Picture(image))
calico.display(Picture(output))