{'fraction_non_alphanumeric': 0.018867924528301886, 'fraction_numerical': 0.006289308176100629, 'mean_word_length': 4.895061728395062, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
On-chip computation of Euler number of a binary image for efficient database search

The Euler number is a fundamental topological feature of an image, which remains invariant under translation, rotation, scaling, and rubber-sheet transformation of the image. A novel algorithm for computing the Euler number of a binary image is proposed which is based on the properties of runs of 0's and 1's present in the pixel matrix. The algorithm outperforms significantly the existing techniques in terms of both the number of pixel accesses and CPU time. It can be easily parallelized, and a simple on-chip implementation is reported here. Results on a database consisting of 1039 logo images reveal that the Euler number has a strong discriminatory power, and hence can be used for efficient database searching or matching of binary images. The proposed algorithm is very fast and easy to implement, and has potential of wide applicability in image processing.