OpenCvSharp
tesseract-ocr
OpenCvSharp | tesseract-ocr | |
---|---|---|
9 | 121 | |
5,116 | 58,022 | |
- | 2.1% | |
7.8 | 8.9 | |
2 months ago | 6 days ago | |
C# | C++ | |
Apache License 2.0 | Apache License 2.0 |
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.
OpenCvSharp
-
Image Feature Detection and Matching using OpenCvSharp - First Steps Towards VinylEye
In a previous post, I have gone through the process for building a Docker Image for OpenCVSharp that supports multiple processor architectures.
-
Does there exist an API accessible from C# that detects faces in images?
Alternatively, you can get into the nitty gritty of face detection yourself. OpenCV is a massive, open source project for all kinds computer vision tasks. Without jumping into the proprietary world, this is one of the most popular and capable computer vision libraries available. While powerful, OpenCV is comparatively low level; giving you the tools you need to accomplish your task, rather than a direct, single method to call. This tutorial goes into depth on how you'd go about training facial models to create your own detection methods. You'll notice that the example is written in C++. The con with this option (aside from it being more complex) is that OpenCV is largely used in the context of C++ or Python. However, it does have C# wrappers. Emgu CV is probably the most popular .NET wrapper for OpenCV, though there are other wrappers available. Here is a nice tutorial using OpenCVSharp, which is a bit closer to the native C++ API OpenCV uses.
-
Compress/resize images
Another option for more advanced image manipulation - use OpenCV wrapper like opencvsharp. I haven't done much benchmarking, but from my understanding this is considerably faster option than anything made in managed code (like ImageSharp), but coming at the cost of native dependency and a bit more C++-style API and other quirks of OpenCV.
- Creating a NuGet package with static dependencies AND a native assembly wrapper?
-
Universal UI testing based on image and text recognition
In order to do so, I had to learn about the basics of image processing. I was able to find an image within another with a technique called template matching, and I used an OpenCV wrapper made for .NET. I will not go through the technical details here, but you can find the relevant source code in my GitHub repository.
-
Docker multi-architecture, .NET 6.0 and OpenCVSharp
FROM debian:bullseye-slim AS build-native-env ARG TARGETPLATFORM ENV DEBIAN_FRONTEND=noninteractive # 4.5.5: released 25 Dec 2021 ENV OPENCV_VERSION=4.5.5 # 4.5.3.20211228: released 28 Dec 2021 ENV OPENCVSHARP_VERSION=4.5.3.20211228 WORKDIR / # install dependencies required for building OpenCV and OpenCvSharpExtern RUN apt-get update && apt-get -y install --no-install-recommends \ # details omitted \ libgdiplus # Get OpenCV and opencv-contrib sources using the specified release. RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \ unzip ${OPENCV_VERSION}.zip && \ rm ${OPENCV_VERSION}.zip && \ mv opencv-${OPENCV_VERSION} opencv RUN wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \ unzip ${OPENCV_VERSION}.zip && \ rm ${OPENCV_VERSION}.zip && \ mv opencv_contrib-${OPENCV_VERSION} opencv_contrib # configure and build OpenCV optionally specifying architecture related cmake options. RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ ADDITIONAL_FLAGS='' ; \ elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \ ADDITIONAL_FLAGS='-D ENABLE_NEON=ON -D CPU_BASELINE=NEON ' ; \ elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then \ ADDITIONAL_FLAGS='-D CPU_BASELINE=NEON -D ENABLE_NEON=ON ' ; \ fi && cd opencv && mkdir build && cd build && \ cmake $ADDITIONAL_FLAGS \ # additional flags omitted for clarity \ && make -j$(nproc) \ && make install \ && ldconfig # Download OpenCvSharp to build OpenCvSharpExtern native library RUN git clone https://github.com/shimat/opencvsharp.git RUN cd opencvsharp && git fetch --all --tags --prune && git checkout ${OPENCVSHARP_VERSION} WORKDIR /opencvsharp/src RUN mkdir /opencvsharp/make \ && cd /opencvsharp/make \ && cmake -D CMAKE_INSTALL_PREFIX=/opencvsharp/make /opencvsharp/src \ && make -j$(nproc) \ && make install \ && cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /usr/lib/ \ && ldconfig # Copy the library and dependencies to /artifacts (to be used by images consuming this build) # cpld.sh will copy the library we specify (./libOpenCvSharpExtern.so) and any dependencies # to the /artifacts directory. This is useful for sharing the library with other images # consuming this build. # credits: Hemanth.HM -> https://h3manth.com/content/copying-shared-library-dependencies WORKDIR /opencvsharp/make/OpenCvSharpExtern COPY cpld.sh . RUN chmod +x cpld.sh && \ mkdir /artifacts && \ ./cpld.sh ./libOpenCvSharpExtern.so /artifacts/ RUN cp ./libOpenCvSharpExtern.so /artifacts/ # Publish the artefacts using a clean image FROM debian:bullseye-slim AS final RUN mkdir /artifacts COPY --from=build-native-env /artifacts/ /artifacts WORKDIR /artifacts
- Why we can’t use C++ in WPF?
-
What's the fastest way to get pixel data from a Bitmap?
Maybe opencv will be faster? https://github.com/shimat/opencvsharp
-
image classification in .net with webcam
hello. the quickest way to access webcam in .NET would be use this package shimat/opencvsharp: OpenCV wrapper for .NET (github.com) and give feedback about using the lobe.OpenCVSharp binding to help you classify the images
tesseract-ocr
-
one of the Codia AI Design technologies: OCR Technology
You will also need to install the Tesseract OCR engine, which can be downloaded and installed from the following link: https://github.com/tesseract-ocr/tesseract
-
Leveraging GPT-4 for PDF Data Extraction: A Comprehensive Guide
PyTesseract Module [ Github ] EasyOCR Module [ Github ] PaddlePaddle OCR [ Github ]
-
OCR text to speech for disability
It uses teseract for the OCR https://github.com/tesseract-ocr/tesseract
-
Marker: Convert PDF to Markdown quickly with high accuracy
Last update was pretty recent, and the git mentions tesseract 5 as a dep. so it's likely moved on a bit from when you last tried it:
https://github.com/tesseract-ocr/tesseract/releases
I suppose it depends on your use-case. For personal tasks like this it should be more than sufficient, and won't need user details/cc or whatever to use it.
-
How to Read Text From an Image with Python
Tesseract is an open-source OCR engine developed by Google. It is highly accurate and supports multiple languages. This library will do all the heavy lifting for us. We'll use it in this tutorial to quickly read the text in some images.
-
OpenAI is too cheap to beat
> Does android even have native OCR?
Tesseract? https://github.com/tesseract-ocr/tesseract
-
So You Decided to Extract Recipe Text From Scans of Your Grandpa's Old Cookbook Using Pytesseract (+ My Grandma's Fig Cake Recipe) (+ Hidden Recipes To Be Found)
Install Google Tesseract OCR (additional info how to install the engine on Linux, Mac OSX and Windows). You must be able to invoke the tesseract command as tesseract. If this isn’t the case, for example because tesseract isn’t in your PATH, you will have to change the “tesseract_cmd” variable pytesseract.pytesseract.tesseract_cmd. Under Debian/Ubuntu you can use the package tesseract-ocr. For Mac OS users. please install homebrew package tesseract.
-
I used Node.js to OCR "Meme Monday" threads
OCR detection will be done with Tesseract.
-
How to ingest image based PDFs into private GPT model?
I’ve used Tesseract for this. It seems to work well with tabular data. https://github.com/tesseract-ocr/tesseract
-
What should I use to take notes in college?
If you go this route, then using an app that can convert your handwritten notes to a digital format (indexed text), will give you a good balance between cognitive processing and efficient data storage/management; you can likely find many such apps on the App Store or Google Play. If you're interested in something more hands-on, on Arch you can probably experiment with Tesseract OCR in an interesting way (Example).
What are some alternatives?
Emgu CV - Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library.
PaddleOCR - Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
ImageSharp - :camera: A modern, cross-platform, 2D Graphics library for .NET
pytesseract - A Python wrapper for Google Tesseract
ML.NET - ML.NET is an open source and cross-platform machine learning framework for .NET.
EasyOCR - Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc.
Magick.NET - The .NET library for ImageMagick
OpenCV - Open Source Computer Vision Library
ImageProcessor - :camera: A fluent wrapper around System.Drawing for the processing of image files.
Pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration
MetadataExtractor - Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Face Recognition - The world's simplest facial recognition api for Python and the command line