Ai_Demos_RPi
JPEG-Image-Compressor
Our great sponsors
Ai_Demos_RPi | JPEG-Image-Compressor | |
---|---|---|
1 | 2 | |
80 | 38 | |
- | - | |
0.0 | 3.3 | |
almost 2 years ago | 4 months ago | |
Python | Python | |
- | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Ai_Demos_RPi
-
I don't get it
I'm just using raspberry pi as my development machine. I'm currently following This and cannot figure out how to configure the plug in. I've also followed acrobotics tutorial for installing librealsense. I've followed it to a T, sometimes it installs, sometimes it doesn't. I used that on my last project and it worked perfectly. This one not so much.
JPEG-Image-Compressor
-
JPEG image compression algorithm using Python
To anyone interested in using JPEG's compression algorithm, I wrote a little program as a project for a course to do so. Here's the link to my repository on GitHub: https://github.com/mVirtuoso21/JPEG-Image-Compressor.git This Python program compresses raw images based on the JPEG compression algorithm. This program takes as input a raw image (eg: .bmp). The image is read using the OpenCV library in BGR color space, then converted to YCrCb. Each channel is normalized by subtracting 128. Then a 4: 2: 2 subsampling scheme is applied (another scheme can be used), by utilizing a 2 × 2 averaging filter on the chrominance channels (another type of filter can be used), thus reducing the number of bits per pixel to 8 + 4 + 4 = 16. Each channel is divided into 8 × 8 blocks – and is padded with zeros if needed. Each block undergoes a discrete cosine transform, where in the resulting block, the first component of each block is called the DC coefficient, and the other 63 are AC components. DC coefficients are encoded using DPCM as follows: , . AC components are encoded using run length in the following way: , , while using zigzag scan on the block to produce longer runs of zeros. An intermediary stream consists of encoded DC and AC components, and an EOB (end of block) to mark the end of the block. To achieve a higher compression rate, all zero AC components are trimmed from the end of the zigzag scan. A Huffman dictionary is created by calculating the frequency of each intermediary symbol. Since one image is to be sent in this project, the frequencies of the intermediary symbols will be calculated from those of this image (one can use a predefined Huffman dictionary). Each intermediary stream is encoded using its assigned codeword. The encoded bitstream is then written to an output file.
What are some alternatives?
imagezmq - A set of Python classes that transport OpenCV images from one computer to another using PyZMQ messaging.
Batch-crop-images - A tool for cropping similar images in a batch with an interface.
The-Machine - Person of Interest Machine
PyVideoFramesExtractor - Extract frames from videos in Python using OpenCV.
GasPumpOCR - Python and OpenCV scripts to detect digits on a Gas Pump
toojpeg - A JPEG encoder in a single C++ file
opencv-steel-darts - Automatic scoring system for steel darts using OpenCV, a Raspberry Pi 3 Model B and two webcams.
vidgear - A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features :fire:
CheekyKeys - Use Python, OpenCV, and MediaPipe to control a keyboard with facial gestures
SmoothStream - Webcam, PiCamera streaming over the network with Python made easy.