We made thousands of pre-made source code pieces for easy implementation in your own programming projects. Want to set image preprocessing filters with barcode reader sdk in your C++ app? ByteScout Barcode Suite is designed for it. ByteScout Barcode Suite is the bundle that privides 3 SDK products to generate barcodes (Barcode SDK), read barcodes (Barcode Reaer SDK) and read and write spreadsheets (Spreadsheet SDK).
These C++ code samples for C++ guide developers to speed up coding of the application when using ByteScout Barcode Suite. Simply copy and paste in your C++ project or application you and then run your app! Applying C++ application mostly includes various stages of the software development so even if the functionality works please test it with your data and the production environment.
ByteScout Barcode Suite free trial version is available on our website. C++ and other programming languages are supported.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
#include "stdafx.h" /// /// This example demonstrates the use of image filters to improve the decoding confidence or speed. /// #import "c:\\Program Files\\Bytescout BarCode Reader SDK\\net2.00\\Bytescout.BarCodeReader.tlb" raw_interfaces_only using namespace Bytescout_BarCodeReader; void PrintFoundBarcodes(IReaderPtr pIReader); int _tmain(int argc, _TCHAR* argv[]) { // Initialize COM. HRESULT hr = CoInitialize(NULL); // Create the interface pointer. IReaderPtr pIReader(__uuidof(Reader)); // set the registration name and key _bstr_t registrationName(L"DEMO"); pIReader->put_RegistrationName(registrationName); _bstr_t registrationKey(L"DEMO"); pIReader->put_RegistrationKey(registrationKey); // Set barcode type to find _BarcodeTypeSelectorPtr pBarcodeTypesToFind; pIReader->get_BarcodeTypesToFind(&pBarcodeTypesToFind); pBarcodeTypesToFind->put_Code128(VARIANT_TRUE); // Get image filters collection _ImagePreprocessingFiltersCollection* pIImageFilters; pIReader->get_ImagePreprocessingFilters(&pIImageFilters); // WORKING WITH LOW CONTRAST BARCODE IMAGES pIImageFilters->AddContrast(40); // Add contrast adjustment for low-contrast image _bstr_t sampleFile1(L".\\low-contrast-barcode.png"); wprintf(L"Image \"%s\"\n", static_cast<wchar_t*>(sampleFile1)); pIReader->ReadFromFile(sampleFile1); PrintFoundBarcodes(pIReader); pIImageFilters->Clear(); // WORKING WITH NOISY BARCODE IMAGES // Add median filter to lower a noise pIImageFilters->AddMedian(); _bstr_t sampleFile2(L".\\noisy-barcode.png"); wprintf(L"Image \"%s\"\n", static_cast<wchar_t*>(sampleFile2)); pIReader->ReadFromFile(sampleFile2); PrintFoundBarcodes(pIReader); pIImageFilters->Clear(); // WORKING WITH DENSE AND ILLEGIBLE BARCODES // Add the scale filter to enlarge the barcode to make gaps between bars more distinguishable pIImageFilters->AddScale_2(2.0); _bstr_t sampleFile3(L".\\too-dense-barcode.png"); wprintf(L"Image \"%s\"\n", static_cast<wchar_t*>(sampleFile3)); pIReader->ReadFromFile(sampleFile3); PrintFoundBarcodes(pIReader); pIImageFilters->Clear(); // REMOVE EMPTY MARGINS FROM IMAGE TO SPEED UP THE PROCESSING // Add the crop filter to cut off empty margins from the image. // This will not improve the recognition quality but may speed up the processing // if you enabled multiple barcode types to search. pIImageFilters->AddCropDark(); _bstr_t sampleFile4(L".\\barcode-with-large-margins.png"); wprintf(L"Image \"%s\"\n", static_cast<wchar_t*>(sampleFile4)); pIReader->ReadFromFile(sampleFile4); PrintFoundBarcodes(pIReader); pIImageFilters->Clear(); // Uninitialize COM. CoUninitialize(); // Wait until user press any key system("pause"); return 0; } void PrintFoundBarcodes(IReaderPtr pIReader) { // Get found barcode count long count; pIReader->get_FoundCount(&count); // Get found barcode information for (int i = 0; i < count; i++) { SymbologyType type; pIReader->GetFoundBarcodeType(i, &type); wprintf(L"Barcode type: %d\n", type); float confidence; pIReader->GetFoundBarcodeConfidence(i, &confidence); wprintf(L"Barcode confidence: %f\n", confidence); BSTR bstrValue; pIReader->GetFoundBarcodeValue(i, &bstrValue); wprintf(L"Barcode value: %s\n", bstrValue); ::SysFreeString(bstrValue); wprintf(L"\n"); } if (count == 0) { wprintf(L"No barcodes found.\n"); } }
60 Day Free Trial or Visit ByteScout Barcode Suite Home Page
Explore ByteScout Barcode Suite Documentation
Explore Samples
Sign Up for ByteScout Barcode Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
// stdafx.cpp : source file that includes just the standard includes // CPPExample.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file
60 Day Free Trial or Visit ByteScout Barcode Suite Home Page
Explore ByteScout Barcode Suite Documentation
Explore Samples
Sign Up for ByteScout Barcode Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #include "targetver.h" #include <stdio.h> #include <tchar.h> // TODO: reference additional headers your program requires here
60 Day Free Trial or Visit ByteScout Barcode Suite Home Page
Explore ByteScout Barcode Suite Documentation
Explore Samples
Sign Up for ByteScout Barcode Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
#pragma once // Including SDKDDKVer.h defines the highest available Windows platform. // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. #include <SDKDDKVer.h>
60 Day Free Trial or Visit ByteScout Barcode Suite Home Page
Explore ByteScout Barcode Suite Documentation
Explore Samples
Sign Up for ByteScout Barcode Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
60 Day Free Trial or Visit ByteScout Barcode Suite Home Page
Explore ByteScout Barcode Suite Documentation
Explore Samples
Sign Up for ByteScout Barcode Suite Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
also available as: