Moparscape - RSPS Community

General Interests & Hobbies => General Programming => Topic started by: object on August 23, 2016, 03:13:44 PM

Title: Image Processing Program - Dayflower Image
Post by: object on August 23, 2016, 03:13:44 PM
Hello,

I've created an image processing program that I'd like you guys to test if you so wish.

It can do the following:
- Load images such as .BMP, .GIF, .JPG, .PNG and .WBMP.
- Save images such as .BMP, .GIF, .JPG, .PNG and .WBMP.
- Turn an image into grayscale using the following: R (red), G (green), B (blue), Average, Lightness and Luminosity.
- Use Sepia Tone filtering.
- Use Tone Mappers and Gamma Correction such as: Filmic Curve, Linear and Reinhard.
- Apply Convolution Filters such as: Blur, Detect Edges, Emboss, Gradient (Horizontal), Gradient (Vertical) and Sharpen.
- Apply your own Convolution Filters via a Custom Convolution Filter matrix.
- Execute Java source code to modify the image (which requires tools.jar).
- Rotate: 90 or 180 degrees.
- Invert the colors of an image.
- Select a portion of the image to perform the image processing on.
- You may tell the program whether it should do the image processing in the same tab or a new one.

The program is internationalized and currently supports English and Swedish.

Discuss it here! If you have any thoughts on it or want some new feature in it, please let me know.

Download: http://www.megafileupload.com/ob5U/org.dayflower.image-0.0.1.zip (http://www.megafileupload.com/ob5U/org.dayflower.image-0.0.1.zip)

(http://_Image_001.png)
Title: Re: Image Processing Program - Dayflower Image
Post by: object on August 23, 2016, 03:56:20 PM
Thank you! :)
Title: Re: Image Processing Program - Dayflower Image
Post by: object on August 24, 2016, 07:32:21 AM
Thanks for the feedback! :)

As for the logic behind the filter. The filter is called a Convolution Filter and is based on a matrix. For each pixel in the image, the matrix is used to transform the color of that pixel based on the colors of the surrounding pixels and the values in the matrix. I think the matrix has to be a square matrix though, but I'm not entirely sure. The matrix also has to have an odd number of columns and rows, as the center of it represents the current pixel.

In that particular method the code before the loops can be ignored. It's just used for saving the last used filter for a feature in the program as well as calculating the coordinates of the rectangle in the image to process within. This rectangle is used by a feature which allows you to select a rectangle in the image by clicking and dragging your mouse over the image.

Edit: If you want to blur the image more in one go, you could create your own custom convolution filter by selecting "Custom Filter". This is where the last convolution filter will be saved for a specific image and tab when you apply a convolution filter on it. So you could apply a "Blur" filter and look up the matrix used for it and then use that in your custom filter. Alternatively, you could also look up the matrix for the blur filter in the source code.
Title: Re: Image Processing Program - Dayflower Image
Post by: object on August 24, 2016, 11:58:14 AM
Now I have a website for this project as well. You can find it here: