Tag: cpp
-
Developing a Desktop MRZ Scanner for Passports, IDs, and Visas with Dynamsoft C++ Capture Vision SDK
The Machine Readable Zone (MRZ) is a section on passports, IDs, visas, and other travel documents that encodes key personal information, such as the holder’s name, nationality, document number, date of birth, gender, and document expiration date, in a standardized format. In this article, you’ll learn how to use the...
-
OpenCV is a powerful library capable of handling a wide range of computer vision tasks. However, its comprehensive functionality can result in a large library size, which may be excessive for applications that only require cross-platform camera streaming. In this article, we will demonstrate how to slim down OpenCV to...
-
WebP images enhance web performance, but decoding barcodes embedded in them can be a challenge since Dynamsoft Barcode Reader doesn’t support WebP directly. If you have a QR code in WebP format, how can you recognize it with Dynamsoft Barcode Reader? This article shows how to use libwebp with Dynamsoft...
-
Rust’s popularity is increasing rapidly. This article aims to integrate Rust with the Dynamsoft C++ Barcode Reader SDK. We will walk through the process of building a command-line barcode reader for Windows and Linux. Prerequisites Rust: A systems programming language renowned for speed, safety, and concurrency. bindgen: A Rust tool...
-
In this article, we continue our series on parcel scanning technologies by delving into the world of C++. Building on our previous JavaScript tutorial, we will explore how to implement barcode scanning and OCR text extraction using C++. This guide will cover setting up the development environment, integrating necessary libraries,...
-
When using PHP, you may sometimes need to integrate a few C++ libraries. This article guides you through the process of building a PHP Barcode and QR Code reading extension using the Dynamsoft C++ Barcode SDK on both Windows and Linux. This article is Part 1 in a 2-Part Series....
-
In a previous article, we developed a barcode and QR code scanner for Windows and Android using Qt6. In this follow-up, we’ll extend the project to include support for iOS devices. To achieve this, we’ll integrate the Dynamsoft iOS Barcode Reader SDK. To facilitate seamless communication between the SDK and...
-
Qt is renowned for its cross-platform capabilities, enabling developers to craft applications for Windows, macOS, Linux, iOS, and Android. In this article, we will construct a QR code scanner for Windows and Android utilizing Qt6. The sample code will be presented in C++ and QML, employing the Dynamsoft Barcode Reader...
-
Starting with version 10, the Dynamsoft Barcode Reader SDK has been entirely rewritten in C++, providing exclusively C++ APIs. This marks a significant departure from version 9.x, which offered both C and C++ APIs, rendering our Go module designed for version 9.x incompatible with version 10. The incompatibility arises because...
-
Dynamsoft’s official C++ Barcode SDK provides only command line samples in C++, which are not user-friendly for selecting image files and displaying results. The Win32 API (Windows API) is a core set of application programming interfaces primarily used for developing Windows GUI applications in C and C++. This article will...
-
A Node.js C++ addon is a module written in C++ that can be loaded into Node.js, used to extend Node.js capabilities by allowing developers to implement functionality in C++. This article will guide you through building a Node.js C++ addon for document edge detection and rectification. The addon relies on...
-
The Raspberry Pi 4, with its enhanced performance and connectivity features, offers a myriad of possibilities for DIY enthusiasts and developers. One such application is turning this compact computer into a fully functional barcode scanner. In this article, we’ll guide you through the process of setting up a barcode scanner...
-
Raspberry Pi is a versatile tool, especially in industrial settings. Imagine transforming it into a barcode scanner using just a camera. This guide is tailored for developers eager to craft Node.js barcode reader apps for IoT gadgets. Dive in to explore the power of Dynamsoft’s barcode SDK for ARM, and...
-
Recently, Dynamsoft rolled out C++ Barcode SDK v10.0. This version has been entirely re-written in C++, providing an entirely new suite of APIs for barcode reading. However, if you’re using MinGW(Minimalist GNU for Windows) to code with this SDK, such as integrating it into a Qt project, you may encounter...
-
A NuGet package is a single ZIP file that can be easily distributed and installed in Visual Studio projects. It typically includes compiled code (such as DLLs), as well as other resources, metadata, and configuration files. While NuGet packages are commonly used for .NET projects, they can also be used...
-
Last week, we finished a Flutter document scanning plugin for web, which is just a start. This week, we continue to empower the plugin for desktop development using Dynamsoft Document Normalizer C++ SDK. The plugin will support Windows and Linux. In this article, you will see the steps to build...
-
Dynamsoft Document Normalizer is a document scanning SDK that can be used to do edge detection, perspective correction, and contrast enhancement. Its C/C++ API is available on Windows and Linux. In this article, we will show you how to build a Python wrapper for Dynamsoft C/C++ Document Normalizer SDK, as...
-
If you’re looking to build and test barcode and QR code scanner applications for embedded and IoT devices such as Raspberry Pi, Arduino, Jetson Nano, and others, having a physical device is not essential for development. This article demonstrates how to use the Dynamsoft Barcode SDK to create barcode and...
-
Implementing a Python extension in C or C++ is easy, but building the native module into a Python wheel package for different operating systems and different Python versions is a nightmare. A CPython wheel package is Python-version-dependent, therefore, to make a CPython module work universally for Python 3.x, you have...
-
Dynamsoft Barcode Reader SDK supports development of barcode and QR code scanning applications for desktop, mobile and web platforms. The version 9.0 of the SDK is coming to all platforms in the following weeks. The C++ SDK is available for download today. As an enterprise-class C++ barcode and QR code...
-
When building a TWAIN-compatible application and there is no physical scanner available, you can use a virtual scanner application for development and testing. TWAIN working group has released a TWAIN DS sample on GitHub. In this article, I will detail how to set up the development environment, as well as...
-
If you search for passport scanner software or MRZ reader software, you will find many of them are only available for mobile devices. For police officers, scanning passports by mobile devices is convenient when they are patrolling. However, for customs and immigration officers, they usually use desktop system and professional...
-
A few days ago, I wrote a blog post about how to implement a desktop barcode reader application using Qt and C++. The application only supports still image mode. In this article, I am going to add a webcam support to empower the application to scan barcodes in real time....
-
No matter which edition of Dynamsoft Barcode SDK you use, the underlying algorithm interfaces are all implemented in C/C++. To evaluate Dynamsoft barcode SDK precisely, you’d better get started with the C++ libraries. However, there is only a command-line sample available in the SDK package. I have been tired of...
-
For the past several weeks, the Flutter plugin of Dynamsoft Barcode Reader has covered Windows, Android and Web. This week, we go through the plugin implementation for Linux. Similar to Windows, we combine Dart and C++ code for Linux. The unexpected thing is the C++ data types of Flutter defined...
-
Last week, I wrote a step-by-step tutorial sharing how to build a Flutter barcode SDK plugin with Dynamsoft Barcode Reader. The platform-specific code of Android is done. This week, I am going to focus on Windows desktop. Since the Flutter desktop plugin development is still on the early stage, there...
-
Dynamsoft Label Recognition (DLR) is an OCR SDK implemented in C/C++. The 1.0 Beta version was recently rolled out for Windows and Linux platforms. This article will demonstrate how to utilize the APIs of Dynamsoft Label Recognition to create a text recognition app on Windows. Requirements Dynamsoft Label Recognition 1.0...
-
While scanning single or multiple barcodes with a barcode SDK, most of the developers only concern about the trade-off between decoding speed and recognition accuracy, for they cannot get other data. Since from version 8.0, Dynamsoft exposes more parameters and intermediate results (E.g., grayscale image, binary image, barcode localization results,...
-
Apple announced new Mac models with Apple M1 chip recently. Although Dynamsoft has not released an Apple Silicon version of Dynamsoft Barcode Reader SDK yet, I am curious how will x86_64 barcode SDK perform under Rosetta 2. In this article, I will build a simple command-line QR Code reader app...
-
Dynamsoft recently added a new panorama module to barcode SDK, aiming to provide a brand-new solution for warehouse and inventory management. In this article, I will try my best to guide you through the usage of Dynamsoft Panorama version 1.0, though the first version is not stable and optimized yet....
-
Dynamsoft Barcode Reader is an enterprise-class barcode SDK implemented in C/C++. Although the SDK is available for Windows, Linux, and macOS, there is only one Windows sample showing how to invoke the latest video APIs in version 7.x. To make developers experience the example in Linux or other platforms, I...
-
Three years ago, I created a Python extension module for Dynamsoft Barcode Reader C/C++ SDK. The code skeleton has never been changed until recently the SDK updated to v7.0. In the latest barcode SDK, besides the values of barcode symbologies, there are more constant variables needed to be predefined. The...
-
Dynamsoft Barcode Reader 7.0 brings a set of thread-based APIs for continuous frame management and corresponding barcode decoding. It extremely simplifies the programming complexity, especially for Python. It is known that Python’s GIL (Global Interpreter Lock) affects the performance in a multi-threaded scenario. Running computation intensive tasks in Python thread...
-
Previously, I shared an article on how to use the Camera2 APIs and Dynamsoft Barcode Reader to build an Android barcode scanner app capable of detecting fast-moving barcodes. In that project, the barcode decoding was implemented in Java, which left some room for performance improvements. By accessing the native buffer...
-
A few days ago, I accepted a new challenge of creating a simple command line barcode reader using Rust and Dynamsoft Barcode Reader SDK. Rust is a system programming language similar to C++. The learning process did not go through smoothly as I expected. It is not as easy as...
-
This article is not about creating Java native methods to invoke C/C++ APIs. Instead, it aims to help developers build a JAR package containing a JNI shared library, made with Dynamsoft Barcode Reader, for Windows, Linux, and macOS from scratch. In this article, I will demonstrate how to create JNI...
-
Last week, I shared how to create a CMake project for Windows. Since CMake is a cross-platform software building tool, I am going to make my C/C++ project support Linux and macOS. What You Should Know How to Make C/C++ Code Compatible with Multiple Platforms I used the predefined macros to...
-
If you have a program designed for multiple platforms, you definitely don’t want to waste time configuring and maintaining the building environment. I was thinking how to compile my C/C++ code for Windows, Linux and macOS more conveniently, and after that, I decided to learn CMake. CMake is an open-source,...
-
When porting code from Python 2 to Python 3, it is not as easy as you imagined no matter whether the primary programming language is Python or C/C++. Re-compiling the Dynamsoft Barcode extension for Python 3 is a challenge because I only found a few of documentation and resources online....
-
It was my first time to hear about WebAssembly when watching Google I/O ‘17. WebAssembly (wasm) lets developers compile C/C++ or other statically typed languages into JavaScript for building high-performance web apps. Assume I have a C/C++ barcode detection or OCR library deployed on server-side, I can now move it to the...
-
Learn how to effortlessly set up a C/C++ barcode and QR code reader for Raspberry Pi using the Dynamsoft Barcode Reader SDK. This guide is optimized for Raspberry Pi 4 but is compatible with both ARM32 and ARM64 Raspberry Pi OS. About Dynamsoft Barcode Reader SDK Support for ARM32 and...
-
OpenCV officially provides both C++ and Python APIs for developers. Most of the time, developers just need to use one kind of programming languages to read, write and process images with hundreds of computer vision algorithms. However, if you want to use OpenCV Python APIs with an extended C/C++ library,...
-
Dynamsoft Barcode Reader C++ SDK is available for Windows, Linux, and Mac (iOS and Android editions are coming soon). I have shared an article that illustrates how to build webcam barcode reader in Python. In this tutorial, I’ll use a different C++ API to implement barcode scanner applications for Windows...
-
Building desktop applications is not as easy as developing web applications because it is platform-related. You may need to learn C# for Windows, C/C++ for Linux, and Swift for Mac. For Java developers, it is convenient to create universal desktop applications in Swing and JavaFX. What about web developers, who...
-
In this tutorial, let’s see how easy to find all contours in an image with OpenCV APIs. Overview Finding contours is a useful task during image processing. The relevant OpenCV functions are as follows: Find contours in a binary image. void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int...
-
In this tutorial, let’s learn how to use Hough line transformation with OpenCV to make line detection in an Image. Hough Line Transform The Hough Line Transform is a transform used to detect straight lines. OpenCV implements three kinds of Hough Line Transforms:(Standard Hough Transform, SHT),(Multi-Scale Hough Transform, MSHT)and (Progressive...
-
Java Native Interface (JNI) is the glue between Java and native code such as C, C++, and assembly. With JNI, Java applications are capable of supporting platform-specific features. JNI enables developers to call low-level APIs (e.g. SQL, OpenGL etc.) to make Java application more powerful with higher performance. For example, we can...
-
It is known that RSA is a cryptosystem which is used for the security of data transmission. This tutorial introduces how to use RSA to generate a pair of public and private keys on Windows. Download and install OpenSSL https://www.openssl.org/community/binaries.html. Find libeay32.lib, ssleay32.lib and libeay32.dll. The following sample code will...