mirror of
https://github.com/SatDump/SatDump
synced 2026-08-13 17:47:30 -04:00
72 lines
No EOL
2 KiB
C++
72 lines
No EOL
2 KiB
C++
#pragma once
|
|
|
|
/**
|
|
* @file processing.h
|
|
* @brief Various processing functions (blur, equalize...)
|
|
*/
|
|
|
|
#include "image.h"
|
|
|
|
namespace satdump
|
|
{
|
|
namespace image
|
|
{
|
|
/**
|
|
* @brief While balance algorithm from Gimp
|
|
* @param img image to white balance
|
|
* @param percentileValue percentile to balance to
|
|
*/
|
|
void white_balance(Image &img, float percentileValue = 0.05f);
|
|
|
|
/**
|
|
* @brief Median blur. Somewhat equivalent to Gimp's with
|
|
* a radius of 1
|
|
* @param img image to blur
|
|
*/
|
|
void median_blur(Image &img);
|
|
|
|
/**
|
|
* @brief Adaptive noise reduction filter
|
|
* @param img image to process
|
|
*/
|
|
void kuwahara_filter(Image &img);
|
|
|
|
/**
|
|
* @brief Perform histogram equalization
|
|
* @param img image to equalize
|
|
* @param per_channel if true, performs the equalization
|
|
* separately for each spectral channel
|
|
*/
|
|
void equalize(Image &img, bool per_channel = false);
|
|
|
|
/**
|
|
* @brief Normalize the current image data. This takes
|
|
* the current min and max values and extends it to the full bit
|
|
* depth range
|
|
* @param img image to process
|
|
*/
|
|
void normalize(Image &img);
|
|
|
|
/**
|
|
* @brief Invert the entire image. Blacks becomes white and the
|
|
* opposite
|
|
* @param img image to process
|
|
*/
|
|
void linear_invert(Image &img);
|
|
|
|
/**
|
|
* @brief Despeckle the image. Very basic despeckle algorithm
|
|
* @param img image to process
|
|
* @param thresold difference over which the pixel is
|
|
* considered bad
|
|
*/
|
|
void simple_despeckle(Image &img, int thresold = 10);
|
|
|
|
/**
|
|
* @brief Rotate image by 0, 90, 180 or 270 degs
|
|
* @param img image to rotate
|
|
* @param angle angle to rotate the image by
|
|
*/
|
|
void rotate(Image &img, int angle);
|
|
} // namespace image
|
|
} // namespace satdump
|