Skip to content

Commit

Permalink
Merge pull request #45 from observerly/feature/monochrome/AnalogDigit…
Browse files Browse the repository at this point in the history
…alUnits

feat: Added MonochromeExposure{ ..., ADU }.
  • Loading branch information
michealroberts authored Nov 1, 2022
2 parents ab1b067 + d10c003 commit 470e927
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 70 deletions.
114 changes: 57 additions & 57 deletions coverage.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
mode: atomic
github.com/observerly/iris/pkg/histogram/histogram.go:18.51,25.47 4 0
github.com/observerly/iris/pkg/histogram/histogram.go:30.2,30.12 1 0
github.com/observerly/iris/pkg/histogram/histogram.go:25.47,28.3 2 0
github.com/observerly/iris/pkg/photometry/noise.go:12.77,17.29 2 2
github.com/observerly/iris/pkg/photometry/noise.go:21.2,26.3 1 2
github.com/observerly/iris/pkg/photometry/noise.go:17.29,19.3 1 32
Expand Down Expand Up @@ -69,60 +66,9 @@ github.com/observerly/iris/pkg/fits/header.go:166.2,166.59 1 1
github.com/observerly/iris/pkg/fits/header.go:158.18,160.3 1 0
github.com/observerly/iris/pkg/fits/header.go:162.23,164.3 1 1
github.com/observerly/iris/pkg/fits/header.go:170.33,173.2 2 7
github.com/observerly/iris/pkg/iris/convolution.go:5.122,16.40 5 128
github.com/observerly/iris/pkg/iris/convolution.go:21.2,21.21 1 128
github.com/observerly/iris/pkg/iris/convolution.go:25.2,25.21 1 128
github.com/observerly/iris/pkg/iris/convolution.go:29.2,34.12 5 128
github.com/observerly/iris/pkg/iris/convolution.go:16.40,19.3 2 98
github.com/observerly/iris/pkg/iris/convolution.go:21.21,23.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:25.21,27.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:37.126,54.19 8 128
github.com/observerly/iris/pkg/iris/convolution.go:58.2,58.19 1 128
github.com/observerly/iris/pkg/iris/convolution.go:62.2,66.21 3 128
github.com/observerly/iris/pkg/iris/convolution.go:70.2,70.21 1 128
github.com/observerly/iris/pkg/iris/convolution.go:74.2,79.14 5 128
github.com/observerly/iris/pkg/iris/convolution.go:54.19,56.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:58.19,60.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:66.21,68.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:70.21,72.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:82.124,93.19 5 128
github.com/observerly/iris/pkg/iris/convolution.go:97.2,97.19 1 128
github.com/observerly/iris/pkg/iris/convolution.go:101.2,101.36 1 128
github.com/observerly/iris/pkg/iris/convolution.go:106.2,111.13 5 128
github.com/observerly/iris/pkg/iris/convolution.go:93.19,95.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:97.19,99.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:101.36,104.3 2 98
github.com/observerly/iris/pkg/iris/monochrome.go:26.84,39.2 3 10
github.com/observerly/iris/pkg/iris/monochrome.go:41.79,46.16 3 11
github.com/observerly/iris/pkg/iris/monochrome.go:50.2,50.18 1 11
github.com/observerly/iris/pkg/iris/monochrome.go:46.16,48.3 1 0
github.com/observerly/iris/pkg/iris/monochrome.go:53.116,65.32 8 1
github.com/observerly/iris/pkg/iris/monochrome.go:91.2,91.18 1 1
github.com/observerly/iris/pkg/iris/monochrome.go:65.32,68.28 2 215
github.com/observerly/iris/pkg/iris/monochrome.go:72.3,74.28 2 209
github.com/observerly/iris/pkg/iris/monochrome.go:78.3,85.29 5 208
github.com/observerly/iris/pkg/iris/monochrome.go:68.28,69.12 1 6
github.com/observerly/iris/pkg/iris/monochrome.go:74.28,75.9 1 1
github.com/observerly/iris/pkg/iris/monochrome.go:85.29,88.4 2 16
github.com/observerly/iris/pkg/iris/monochrome.go:94.65,101.51 4 7
github.com/observerly/iris/pkg/iris/monochrome.go:105.2,105.47 1 7
github.com/observerly/iris/pkg/iris/monochrome.go:109.2,111.29 2 7
github.com/observerly/iris/pkg/iris/monochrome.go:101.51,103.3 1 3418608
github.com/observerly/iris/pkg/iris/monochrome.go:105.47,107.3 1 3418608
github.com/observerly/iris/pkg/iris/monochrome.go:114.74,125.51 6 3
github.com/observerly/iris/pkg/iris/monochrome.go:135.2,135.47 1 3
github.com/observerly/iris/pkg/iris/monochrome.go:139.2,141.29 2 3
github.com/observerly/iris/pkg/iris/monochrome.go:125.51,128.30 2 3417824
github.com/observerly/iris/pkg/iris/monochrome.go:128.30,130.4 1 467899
github.com/observerly/iris/pkg/iris/monochrome.go:130.9,132.4 1 2949925
github.com/observerly/iris/pkg/iris/monochrome.go:135.47,137.3 1 3417824
github.com/observerly/iris/pkg/iris/monochrome.go:144.73,154.51 5 1
github.com/observerly/iris/pkg/iris/monochrome.go:164.2,164.47 1 1
github.com/observerly/iris/pkg/iris/monochrome.go:168.2,170.28 2 1
github.com/observerly/iris/pkg/iris/monochrome.go:154.51,157.26 2 256
github.com/observerly/iris/pkg/iris/monochrome.go:157.26,159.4 1 251
github.com/observerly/iris/pkg/iris/monochrome.go:159.9,161.4 1 5
github.com/observerly/iris/pkg/iris/monochrome.go:164.47,166.3 1 256
github.com/observerly/iris/pkg/histogram/histogram.go:18.51,25.47 4 0
github.com/observerly/iris/pkg/histogram/histogram.go:30.2,30.12 1 0
github.com/observerly/iris/pkg/histogram/histogram.go:25.47,28.3 2 0
github.com/observerly/iris/pkg/iris/rggb.go:22.85,34.2 2 10
github.com/observerly/iris/pkg/iris/rggb.go:39.85,40.46 1 7
github.com/observerly/iris/pkg/iris/rggb.go:41.14,42.19 1 3
Expand All @@ -146,3 +92,57 @@ github.com/observerly/iris/pkg/iris/rggb.go:132.2,132.22 1 1
github.com/observerly/iris/pkg/iris/rggb.go:115.16,117.3 1 0
github.com/observerly/iris/pkg/iris/rggb.go:121.16,123.3 1 0
github.com/observerly/iris/pkg/iris/rggb.go:128.16,130.3 1 0
github.com/observerly/iris/pkg/iris/convolution.go:5.122,16.40 5 128
github.com/observerly/iris/pkg/iris/convolution.go:21.2,21.21 1 128
github.com/observerly/iris/pkg/iris/convolution.go:25.2,25.21 1 128
github.com/observerly/iris/pkg/iris/convolution.go:29.2,34.12 5 128
github.com/observerly/iris/pkg/iris/convolution.go:16.40,19.3 2 98
github.com/observerly/iris/pkg/iris/convolution.go:21.21,23.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:25.21,27.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:37.126,54.19 8 128
github.com/observerly/iris/pkg/iris/convolution.go:58.2,58.19 1 128
github.com/observerly/iris/pkg/iris/convolution.go:62.2,66.21 3 128
github.com/observerly/iris/pkg/iris/convolution.go:70.2,70.21 1 128
github.com/observerly/iris/pkg/iris/convolution.go:74.2,79.14 5 128
github.com/observerly/iris/pkg/iris/convolution.go:54.19,56.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:58.19,60.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:66.21,68.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:70.21,72.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:82.124,93.19 5 128
github.com/observerly/iris/pkg/iris/convolution.go:97.2,97.19 1 128
github.com/observerly/iris/pkg/iris/convolution.go:101.2,101.36 1 128
github.com/observerly/iris/pkg/iris/convolution.go:106.2,111.13 5 128
github.com/observerly/iris/pkg/iris/convolution.go:93.19,95.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:97.19,99.3 1 112
github.com/observerly/iris/pkg/iris/convolution.go:101.36,104.3 2 98
github.com/observerly/iris/pkg/iris/monochrome.go:27.95,41.2 3 10
github.com/observerly/iris/pkg/iris/monochrome.go:43.79,48.16 3 11
github.com/observerly/iris/pkg/iris/monochrome.go:52.2,52.18 1 11
github.com/observerly/iris/pkg/iris/monochrome.go:48.16,50.3 1 0
github.com/observerly/iris/pkg/iris/monochrome.go:55.116,67.32 8 1
github.com/observerly/iris/pkg/iris/monochrome.go:93.2,93.18 1 1
github.com/observerly/iris/pkg/iris/monochrome.go:67.32,70.28 2 215
github.com/observerly/iris/pkg/iris/monochrome.go:74.3,76.28 2 209
github.com/observerly/iris/pkg/iris/monochrome.go:80.3,87.29 5 208
github.com/observerly/iris/pkg/iris/monochrome.go:70.28,71.12 1 6
github.com/observerly/iris/pkg/iris/monochrome.go:76.28,77.9 1 1
github.com/observerly/iris/pkg/iris/monochrome.go:87.29,90.4 2 16
github.com/observerly/iris/pkg/iris/monochrome.go:96.65,103.51 4 7
github.com/observerly/iris/pkg/iris/monochrome.go:107.2,107.47 1 7
github.com/observerly/iris/pkg/iris/monochrome.go:111.2,113.29 2 7
github.com/observerly/iris/pkg/iris/monochrome.go:103.51,105.3 1 3418608
github.com/observerly/iris/pkg/iris/monochrome.go:107.47,109.3 1 3418608
github.com/observerly/iris/pkg/iris/monochrome.go:116.74,127.51 6 3
github.com/observerly/iris/pkg/iris/monochrome.go:137.2,137.47 1 3
github.com/observerly/iris/pkg/iris/monochrome.go:141.2,143.29 2 3
github.com/observerly/iris/pkg/iris/monochrome.go:127.51,130.30 2 3417824
github.com/observerly/iris/pkg/iris/monochrome.go:130.30,132.4 1 467899
github.com/observerly/iris/pkg/iris/monochrome.go:132.9,134.4 1 2949925
github.com/observerly/iris/pkg/iris/monochrome.go:137.47,139.3 1 3417824
github.com/observerly/iris/pkg/iris/monochrome.go:146.73,156.51 5 1
github.com/observerly/iris/pkg/iris/monochrome.go:166.2,166.47 1 1
github.com/observerly/iris/pkg/iris/monochrome.go:170.2,172.28 2 1
github.com/observerly/iris/pkg/iris/monochrome.go:156.51,159.26 2 256
github.com/observerly/iris/pkg/iris/monochrome.go:159.26,161.4 1 251
github.com/observerly/iris/pkg/iris/monochrome.go:161.9,163.4 1 5
github.com/observerly/iris/pkg/iris/monochrome.go:166.47,168.3 1 256
8 changes: 5 additions & 3 deletions pkg/iris/monochrome.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type MonochromeExposure struct {
Width int
Height int
Raw [][]uint32
ADU int32
Buffer bytes.Buffer
Image *image.Gray
Otsu *image.Gray
Expand All @@ -23,13 +24,14 @@ type MonochromeExposure struct {
Pixels int
}

func NewMonochromeExposure(exposure [][]uint32, xs int, ys int) MonochromeExposure {
func NewMonochromeExposure(exposure [][]uint32, adu int32, xs int, ys int) MonochromeExposure {
img := image.NewGray(image.Rect(0, 0, xs, ys))

mono := MonochromeExposure{
Width: xs,
Height: ys,
Raw: exposure,
ADU: adu,
Buffer: bytes.Buffer{},
Image: img,
Pixels: xs * ys,
Expand Down Expand Up @@ -99,7 +101,7 @@ func (m *MonochromeExposure) Preprocess() (bytes.Buffer, error) {
gray := image.NewGray(bounds)

setPixel := func(gray *image.Gray, x int, y int) {
gray.SetGray(x, y, color.Gray{uint8(m.Raw[x][y])})
gray.SetGray(x, y, color.Gray{uint8(m.Raw[x][y] / uint32(m.ADU))})
}

utils.DeferForEachPixel(size, func(x, y int) {
Expand All @@ -123,7 +125,7 @@ func (m *MonochromeExposure) ApplyNoiseReduction() (bytes.Buffer, error) {
m.Noise = noise.GetGaussianNoise()

setPixel := func(gray *image.Gray, x int, y int) {
pixel := m.Raw[x][y]
pixel := m.Raw[x][y] / uint32(m.ADU)

if pixel < uint32(m.Noise) {
gray.SetGray(x, y, color.Gray{Y: 0})
Expand Down
20 changes: 10 additions & 10 deletions pkg/iris/monochrome_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
var ex = [][]uint32{}

func TestNewMonochromeExposureWidth(t *testing.T) {
mono := NewMonochromeExposure(ex, 800, 600)
mono := NewMonochromeExposure(ex, 1, 800, 600)

var got int = mono.Width

Expand All @@ -24,7 +24,7 @@ func TestNewMonochromeExposureWidth(t *testing.T) {
}

func TestNewMonochromeExposureHeight(t *testing.T) {
mono := NewMonochromeExposure(ex, 800, 600)
mono := NewMonochromeExposure(ex, 1, 800, 600)

var got int = mono.Height

Expand All @@ -36,7 +36,7 @@ func TestNewMonochromeExposureHeight(t *testing.T) {
}

func TestNewMonochromeExposurePixels(t *testing.T) {
mono := NewMonochromeExposure(ex, 800, 600)
mono := NewMonochromeExposure(ex, 1, 800, 600)

var got int = mono.Pixels

Expand All @@ -55,7 +55,7 @@ func TestNewMonochromeExposurePreprocess4x4(t *testing.T) {
{6, 7, 8, 6},
}

mono := NewMonochromeExposure(ex, 4, 4)
mono := NewMonochromeExposure(ex, 1, 4, 4)

var x int = mono.Width

Expand Down Expand Up @@ -123,7 +123,7 @@ func TestNewMonochromeExposurePreprocess16x16(t *testing.T) {
{6, 7, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 7, 6},
}

mono := NewMonochromeExposure(ex, 16, 16)
mono := NewMonochromeExposure(ex, 1, 16, 16)

var x int = mono.Width

Expand Down Expand Up @@ -189,7 +189,7 @@ func TestNewMonochromeExposureOtsuThreshold(t *testing.T) {
{6, 7, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 7, 6},
}

mono := NewMonochromeExposure(ex, 16, 16)
mono := NewMonochromeExposure(ex, 1, 16, 16)

var x int = mono.Width

Expand Down Expand Up @@ -257,7 +257,7 @@ func TestNewMonochromeExposureNoiseReduction16x16(t *testing.T) {
{6, 7, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 7, 6},
}

mono := NewMonochromeExposure(ex, 16, 16)
mono := NewMonochromeExposure(ex, 1, 16, 16)

var x int = mono.Width

Expand Down Expand Up @@ -333,7 +333,7 @@ func TestNewMonochromeExposureHistogramGray(t *testing.T) {
{6, 7, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 7, 6},
}

mono := NewMonochromeExposure(ex, 16, 16)
mono := NewMonochromeExposure(ex, 1, 16, 16)

mono.Preprocess()

Expand Down Expand Up @@ -384,7 +384,7 @@ func TestNewNoiseExtractorGaussianNoisePngImage(t *testing.T) {
ex[x] = col
}

mono := NewMonochromeExposure(ex, bounds.Dx(), bounds.Dy())
mono := NewMonochromeExposure(ex, 1, bounds.Dx(), bounds.Dy())

for j := 0; j < bounds.Dy(); j++ {
for i := 0; i < bounds.Dx(); i++ {
Expand Down Expand Up @@ -452,7 +452,7 @@ func TestNewNoiseExtractorGaussianNoise16PngImage(t *testing.T) {
ex[x] = col
}

mono := NewMonochromeExposure(ex, bounds.Dx(), bounds.Dy())
mono := NewMonochromeExposure(ex, 1, bounds.Dx(), bounds.Dy())

for j := 0; j < bounds.Dy(); j++ {
for i := 0; i < bounds.Dx(); i++ {
Expand Down

0 comments on commit 470e927

Please sign in to comment.