Use the image processing software written in C ++ by yourself (do not call external packages)
What do you think of when it comes to image processing software? Photoshop? CorelDRAW? Meitu xiuxiu? Or ACDSee's image editing module?
What do you think of when it comes to implementing digital image processing algorithms? Matlab? OpenCV?
Can I write a small image processing software using C ++ to implement some image processing algorithms without calling any external packages? This can be!
Many years ago, even when the home page was still reading, he tried to write the original version of MagicHouse (a small image processing software) in VC ++ 6.0 ). Later, when I wrote my first image processing algorithm book, I updated it with VC ++ 2005. After a long time, it has been pressed down the bottom of the box. I also started to fight against Matlab. After all, laziness is one of the two driving forces for human innovation. Who makes Matlab so time-saving and labor-saving. However, we have to admit that, first of all, compared with C ++, Matlab is actually very limited in industrial applications. Secondly, it hides too many details. Of course, you do not have to worry about memory management or coding/Decoding of image files, however, Matlab always has a sense of "Import and assembly. Is it possible to achieve "full self-reliance? In my spare time these days, I updated my MagicHouse software in Visual Studio 2013. (I heard that Visual Studio has already exceeded 2015, and Anyway should be harmless ). The following describes the basic functions provided by MagicHouse.
Let's take a look at the GUI first --
Pure C ++, without calling any external package, has the advantage of being completely self-built with one brick and one tile. The disadvantage is that I cannot guarantee the optimal efficiency of all algorithms. Currently, this software only supports
BMPAnd
JPGTwo formats (the children who write their own encoding functions cannot afford to hurt ). In browser mode, the program provides
10 image loading methods: Downward scan, dual scan, right-side fly-in, bilateral fly-in, vertical blinds, horizontal blinds, vertical bars, horizontal bars, square effect, rain effect. Below are some --
The following is a demo of some image processing algorithms implemented in the software:
Rotation of geometric transformation of an image (bilinear difference algorithm) →
Gray-scale transformation of images-exponential transformation→
Mosaic of Image filters →
Effect of Water Mist in image filter (compound direction) →
Image FilterColor pen Effect→
Seed Filling Algorithm for Image Analysis →
Fast Fourier transformation based on orthogonal transformation→
Orthogonal Transformation-Image Wavelet Decomposition (L2) →
Multi-region Contour Tracking Algorithm→
Watershed Algorithm for image segmentation →
Noise Reduction Algorithm for protection texture of advanced image enhancement processing: nonlinear diffusion filtering based on PM equation →
Advanced Image Enhancement-texture-protected Noise Reduction Algorithm: TV Noise Reduction Algorithm Based on full variation →
Image Encryption algorithm-image scrambling encryption based on the Hilbert curve (graph) and image scrambling encryption based on Cat ing (right image) →
Nothing can be seen. This is the result :)
Secret Image Hiding Algorithm Based on Chaotic image fusion →
The figure on the Left Below is a hidden encrypted image (note that an image is hidden for readers to see clearly, and I have adjusted the parameters to make it appear, in fact, it can be completely hidden, so that the image will look exactly the same as the original template image ). The right image is the decrypted image.
Color Image expansion based on morphological methods →
The above lists only some of the functions provided by the software. Due to the limited space, I will not list them one by one here. I will continue to improve the software and implement more interesting algorithms in the future.