I have a starting BufferedImage ((a) in figure below). I don't know how to call this filter, but I need to transform all figure (a) pixels gradually from (b) to (c), until they are all gray as (d). How can I achieve this? Thanks!
Image filter with Java BufferedImage: how to change all pixels colors untill they converge to a total gray image
309 Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in JAVA
- Add image to JCheckBoxMenuItem
- How to access invisible Unordered List element with Selenium WebDriver using Java
- Inheritance in Java, apparent type vs actual type
- Java catch the ball Game
- Access objects variable & method by name
- GridBagLayout is displaying JTextField and JTextArea as short, vertical lines
- Perform a task each interval
- Compound classes stored in an array are not accessible in selenium java
- How to avoid concurrent access to a resource?
- Why does processing goes slower on implementing try catch block in java?
- Redirect inside java interceptor
- Push toolbar content below statusbar
- Animation in Java on top of JPanel
- JPA - How to query with a LIKE operator in combination with an AttributeConverter
- Java Assign a Value to an array cell
Related Questions in BUFFEREDIMAGE
- Java jar File error message Exception in thread "AWT-EventQueue-0"
- How to move everything in Graphics2D by x,y coordinates.
- Java BufferedImage / JPanel not updating new black pixel rows using JButton
- which image type is equivalent to 5
- Read in Bufferedimage pixel values then manipulate each one and write to file
- Java BufferedImage
- Last image on JLabel is shown for all after adding JLayeredPane in loop
- fusion of images without using of buffereimage
- Java application closes after BufferedImage without throwing exception
- Java BufferedImage: Calculate Memory Size in Advance
- Set Raster Data with Byte Array
- I converted BufferedImage to Base64 but How I convert it to Image again?
- Java - Is there any way to make a shaped image?
- BufferedImage resize algorithm
- Convert BufferedImage to aws...rekognition.model.Image
Related Questions in COLORFILTER
- TextColor and other change on dynamically add view
- How to fill a B&W PNG icon with a color in Android?
- Changing Color of Image programmatically Android
- Inverting colors (negative) using ColorMatrixColorFilter
- PorterDuff color effects in android for views under a given view
- Conditionally formating a ListView. Function only works from OnListItemClick(), but not from OnCreate()?
- Apply and Clear ColorFilter on view in Android
- How to make a Color Tone Curve Filter C# with splines
- Android: Exception applying a ColorMatrixColorFilter to a Paint object, but only for certain Bitmaps
- How to swap red and blue in a drawable in Android?
- Drawable setColorFilter not work on Nexus 7
- How to apply gradient color filter, or delete half of a bitmap
- GigE camera output is not what is expected. Showing different images in eBus viewer and camera software
- Image filter with Java BufferedImage: how to change all pixels colors untill they converge to a total gray image
- What is the best way to apply color filter on hair style with some specified hair style image pattern?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?

Looks like it could be achieved with linear interpolation. I'll not get into the specifics of the code but just give you an algorithm to put you on the right track.
Let's assume the colors are represented as RGB float values with a range of [0,1]. So
(0.0,0.0,0.0)means 0% red, 0% blue and 0% green;(0.5,0.4,0.3)means 50% red, 40% blue and 30% green. If your colors are in the range [0,255], it should work the same. I prefer the [0,1] range because it works better for certain shaders. You can always divide by 255 to get them into the [0,1] range and multiply by 255 at the end to get them back into the original range.You have two images: your base image (let's call it
Source) and the fully opaque post-processing effect (in this case pure grey, let's call itTarget).To linearly interpolate between them, you just add both their RGB values weighted by a factor that changes over time from 0 to 1 for the Source and from 1 to 0 for the Target, so the sum of both RGB values never exceed the color range of their respective channels.
With your example:
RGB(Source) * 1.0 + RGB(Target) * 0.0RGB(Source) * 0.667 + RGB(Target) * 0.333RGB(Source) * 0.333 + RGB(Target) * 0.667RGB(Source) * 0.0 + RGB(Target) * 1.0