mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 09:51:57 -05:00
ec52d16f7a
The median filter replaces a pixel with the median of all pixels (usually grey value is used) in a square neighborhood. This is a standard image processing filter used for denoising, as despite its simplicity it can e.g. retain edges quite well. The first implementation is quite inefficient mostly to environmental constraints. Due to how images are passed to the processing function, two unnecessary copies happen. And because there's no fast sorting algorithm for small arrays (insertion sort) yet, quick sort needs to be used which is quite slow on this scale.
77 lines
2.1 KiB
CMake
77 lines
2.1 KiB
CMake
serenity_component(
|
|
PixelPaint
|
|
RECOMMENDED
|
|
TARGETS PixelPaint
|
|
DEPENDS ImageDecoder FileSystemAccessServer
|
|
)
|
|
|
|
compile_gml(PixelPaintWindow.gml PixelPaintWindowGML.h pixel_paint_window_gml)
|
|
compile_gml(EditGuideDialog.gml EditGuideDialogGML.h edit_guide_dialog_gml)
|
|
compile_gml(FilterGallery.gml FilterGalleryGML.h filter_gallery_gml)
|
|
compile_gml(ResizeImageDialog.gml ResizeImageDialogGML.h resize_image_dialog_gml)
|
|
compile_gml(LevelsDialog.gml LevelsDialogGML.h levels_dialog_gml)
|
|
compile_gml(Filters/MedianSettings.gml Filters/MedianSettingsGML.h median_settings_gml)
|
|
|
|
set(SOURCES
|
|
CreateNewImageDialog.cpp
|
|
CreateNewLayerDialog.cpp
|
|
EditGuideDialog.cpp
|
|
EditGuideDialogGML.h
|
|
FilterGallery.cpp
|
|
FilterGalleryGML.h
|
|
FilterTreeModel.cpp
|
|
FilterPreviewWidget.cpp
|
|
Filters/Bloom.cpp
|
|
Filters/BoxBlur3.cpp
|
|
Filters/BoxBlur5.cpp
|
|
Filters/Filter.cpp
|
|
Filters/FastBoxBlur.cpp
|
|
Filters/GaussBlur3.cpp
|
|
Filters/GaussBlur5.cpp
|
|
Filters/Grayscale.cpp
|
|
Filters/Invert.cpp
|
|
Filters/LaplaceCardinal.cpp
|
|
Filters/LaplaceDiagonal.cpp
|
|
Filters/Median.cpp
|
|
Filters/MedianSettingsGML.h
|
|
Filters/Sepia.cpp
|
|
Filters/Sharpen.cpp
|
|
HistogramWidget.cpp
|
|
IconBag.cpp
|
|
Image.cpp
|
|
ImageEditor.cpp
|
|
Layer.cpp
|
|
LayerListWidget.cpp
|
|
LayerPropertiesWidget.cpp
|
|
LevelsDialogGML.h
|
|
LevelsDialog.cpp
|
|
MainWidget.cpp
|
|
Mask.cpp
|
|
PaletteWidget.cpp
|
|
PixelPaintWindowGML.h
|
|
ProjectLoader.cpp
|
|
ResizeImageDialog.cpp
|
|
ResizeImageDialogGML.h
|
|
Selection.cpp
|
|
ToolPropertiesWidget.cpp
|
|
ToolboxWidget.cpp
|
|
Tools/BrushTool.cpp
|
|
Tools/BucketTool.cpp
|
|
Tools/CloneTool.cpp
|
|
Tools/EllipseTool.cpp
|
|
Tools/EraseTool.cpp
|
|
Tools/GuideTool.cpp
|
|
Tools/LineTool.cpp
|
|
Tools/MoveTool.cpp
|
|
Tools/PenTool.cpp
|
|
Tools/PickerTool.cpp
|
|
Tools/RectangleSelectTool.cpp
|
|
Tools/RectangleTool.cpp
|
|
Tools/SprayTool.cpp
|
|
Tools/Tool.cpp
|
|
Tools/ZoomTool.cpp
|
|
main.cpp
|
|
)
|
|
|
|
serenity_app(PixelPaint ICON app-pixel-paint)
|
|
target_link_libraries(PixelPaint LibImageDecoderClient LibGUI LibGfx LibFileSystemAccessClient LibConfig LibMain)
|