gfilter

package module
v0.0.0-...-5ab732b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2021 License: MIT Imports: 9 Imported by: 0

README

GFilter

Image filters written in GoLang.

Documentation

Index

Constants

View Source
const (
	ImageTypeNRGBA = ImageType(iota)
	ImageTypeNRGBA64
	ImageTypeRGBA
	ImageTypeRGBA64
	ImageTypeGray
	ImageTypeGray16
	ImageTypePaletted
)

Enumeration of image types

Variables

View Source
var (
	// ErrRowColumnCannotBeZero thrown when either row or columns or both is zero
	ErrRowColumnCannotBeZero = errors.New("Row and Column cannot be zero")
	// ErrRowColumnOutOfBounds is thrown when row and/or column is out of bounds for the defined kernel
	ErrRowColumnOutOfBounds = errors.New("Row and/or Column is out of bounds")
	// ErrUnsupportedImageFormat is thrown when the image is of unsupported format
	ErrUnsupportedImageFormat = errors.New("The image format is unsupported")
)

Functions

func GetColorFromPixel

func GetColorFromPixel(px Pixel, imageType ImageType) (color.Color, error)

GetColorFromPixel converts Pixel to color.Color

Types

type Gray16ImageHandler

type Gray16ImageHandler struct {
	Image     *image.Gray16
	ImageType ImageType
}

Gray16ImageHandler struct to handle the Gray16 Image

func (*Gray16ImageHandler) At

func (handler *Gray16ImageHandler) At(row, column int) (Pixel, error)

At returns the Pixel at row and column of the image

func (*Gray16ImageHandler) GetDimensions

func (handler *Gray16ImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*Gray16ImageHandler) Mode

func (handler *Gray16ImageHandler) Mode() ImageType

Mode returns the ImageType of the images

func (*Gray16ImageHandler) SaveImage

func (handler *Gray16ImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*Gray16ImageHandler) Set

func (handler *Gray16ImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

type GrayImageHandler

type GrayImageHandler struct {
	Image     *image.Gray
	ImageType ImageType
}

GrayImageHandler struct to handle the Gray Image

func (*GrayImageHandler) At

func (handler *GrayImageHandler) At(row, column int) (Pixel, error)

At returns the Pixel at row and column of the image

func (*GrayImageHandler) GetDimensions

func (handler *GrayImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*GrayImageHandler) Mode

func (handler *GrayImageHandler) Mode() ImageType

Mode returns the ImageType of the images

func (*GrayImageHandler) SaveImage

func (handler *GrayImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*GrayImageHandler) Set

func (handler *GrayImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

type ImageHandler

type ImageHandler interface {
	At(row, column int) (Pixel, error)
	Set(row, column int, px Pixel) error
	Mode() ImageType
	GetDimensions() image.Rectangle
	SaveImage(filePath string) error
}

ImageHandler interface for polymorphism

func Apply

func Apply(filter *Kernel, src ImageHandler) (ImageHandler, error)

Apply is the convolution function used to apply the provided filter on the given image. It makes a copy and returns the filtered image without modifying the src image.

func New

func New(imgT ImageType, dimensions image.Rectangle) (ImageHandler, error)

New returns an ImageHandler with a new Image This handler will be used for the result

func ReadImage

func ReadImage(path string) (ImageHandler, error)

ReadImage reads the image from the specified path it will return the interface ImageHandler of the correct type specified in the image

type ImageType

type ImageType int

ImageType to add support for different images

type Kernel

type Kernel struct {
	Sum     float32
	Rows    int
	Columns int
	// contains filtered or unexported fields
}

Kernel struct handles data for the filter kernel

func CreateKernel

func CreateKernel(values []float32, rows, columns int) (*Kernel, error)

CreateKernel creates a kernel object from the params

func (*Kernel) At

func (k *Kernel) At(row, column int) (float32, error)

At gets the value of the kernel at the specified row and column

func (*Kernel) CalculateShift

func (k *Kernel) CalculateShift() (int, int)

CalculateShift returns the amount the original image must be shifted

type NRGBA64ImageHandler

type NRGBA64ImageHandler struct {
	Image     *image.NRGBA64
	ImageType ImageType
}

NRGBA64ImageHandler struct to handle NRGBA64 Image

func (*NRGBA64ImageHandler) At

func (handler *NRGBA64ImageHandler) At(row, column int) (Pixel, error)

At retuns the Pixel at row and column of the image

func (*NRGBA64ImageHandler) GetDimensions

func (handler *NRGBA64ImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*NRGBA64ImageHandler) Mode

func (handler *NRGBA64ImageHandler) Mode() ImageType

Mode returns the ImageType of the images

func (*NRGBA64ImageHandler) SaveImage

func (handler *NRGBA64ImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*NRGBA64ImageHandler) Set

func (handler *NRGBA64ImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

type NRGBAImageHandler

type NRGBAImageHandler struct {
	Image     *image.NRGBA
	ImageType ImageType
}

NRGBAImageHandler struct to handle NRGBA Image

func (*NRGBAImageHandler) At

func (handler *NRGBAImageHandler) At(row, column int) (Pixel, error)

At returns the Pixel at row and column of the image

func (*NRGBAImageHandler) GetDimensions

func (handler *NRGBAImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*NRGBAImageHandler) Mode

func (handler *NRGBAImageHandler) Mode() ImageType

Mode returns the ImageType for the image

func (*NRGBAImageHandler) SaveImage

func (handler *NRGBAImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*NRGBAImageHandler) Set

func (handler *NRGBAImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

type PalettedImageHandler

type PalettedImageHandler struct {
	Image     *image.Paletted
	ImageType ImageType
}

Gray16ImageHandler struct to handle the Gray16 Image

func (*PalettedImageHandler) At

func (handler *PalettedImageHandler) At(row, column int) (Pixel, error)

At returns the Pixel at row and column of the image

func (*PalettedImageHandler) GetDimensions

func (handler *PalettedImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*PalettedImageHandler) Mode

func (handler *PalettedImageHandler) Mode() ImageType

Mode returns the ImageType of the images

func (*PalettedImageHandler) SaveImage

func (handler *PalettedImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*PalettedImageHandler) Set

func (handler *PalettedImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

type Pixel

type Pixel struct {
	// contains filtered or unexported fields
}

Pixel struct to contain RGBA components for images

func ConvertColor

func ConvertColor(c color.Color) Pixel

ConvertColor converts color.Color to Pixel

type RGBA64ImageHandler

type RGBA64ImageHandler struct {
	Image     *image.RGBA64
	ImageType ImageType
}

RGBA64ImageHandler struct to handle the RGBA64 Image

func (*RGBA64ImageHandler) At

func (handler *RGBA64ImageHandler) At(row, column int) (Pixel, error)

At returns the Pixel at row and column of the image

func (*RGBA64ImageHandler) GetDimensions

func (handler *RGBA64ImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*RGBA64ImageHandler) Mode

func (handler *RGBA64ImageHandler) Mode() ImageType

Mode returns the ImageType of the images

func (*RGBA64ImageHandler) SaveImage

func (handler *RGBA64ImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*RGBA64ImageHandler) Set

func (handler *RGBA64ImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

type RGBAImageHandler

type RGBAImageHandler struct {
	Image     *image.RGBA
	ImageType ImageType
}

RGBAImageHandler struct to handle RGBA Image

func (*RGBAImageHandler) At

func (handler *RGBAImageHandler) At(row, column int) (Pixel, error)

At returns the Pixel at row and column of the image

func (*RGBAImageHandler) GetDimensions

func (handler *RGBAImageHandler) GetDimensions() image.Rectangle

GetDimensions returns the dimensions as a Rectangle for the image

func (*RGBAImageHandler) Mode

func (handler *RGBAImageHandler) Mode() ImageType

Mode returns the ImageType of the images

func (*RGBAImageHandler) SaveImage

func (handler *RGBAImageHandler) SaveImage(filePath string) error

SaveImage saves the image to the filepath specified

func (*RGBAImageHandler) Set

func (handler *RGBAImageHandler) Set(row, column int, px Pixel) error

Set sets the Pixel at row and column of the image

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL