Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

vision-camera-ocr-plugin

Package Overview
Dependencies
Maintainers
0
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vision-camera-ocr-plugin

VisionCamera Frame Processor Plugin to provide OCR support

  • 3.0.21
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
15
increased by36.36%
Maintainers
0
Weekly downloads
 
Created
Source

vision-camera-ocr-plugin

A VisionCamera Frame Processor Plugin to preform text detection on images using MLKit Vision Text Recognition. This module can be used only with React Native Vision Camera >= v4.x.x

Installation

yarn add vision-camera-ocr-plugin
cd ios && pod install

Add the plugin to your babel.config.js:

module.exports = {
   plugins: [['react-native-worklets-core/plugin']],
    // ...

Note: You have to restart metro-bundler for changes in the babel.config.js file to take effect.

Usage

import {OCRFrame, scanOCR} from 'vision-camera-ocr-plugin';
import {
  useFrameProcessor,
  Camera,
  useCameraDevice,
} from 'react-native-vision-camera';
import {Worklets} from 'react-native-worklets-core';

export default ({onTextClicked}: VisionCameraPlateProps) => {
  const [hasPermission, setHasPermission] = React.useState(false);
  const [ocr, setOcr] = React.useState<OCRFrame>();
  const isFocused = useIsFocused();
  const device = useCameraDevice('back');

  const onCodeDetected = Worklets.createRunInJsFn((data: any) => {
    setOcr(data);
  });

  const frameProcessor = useFrameProcessor(frame => {
    'worklet';
    const data = scanOCR(frame);
    onCodeDetected(data);
  }, []);

  React.useEffect(() => {
    (async () => {
      const status = await Camera.requestCameraPermission();
      setHasPermission(status === 'granted');
    })();
  }, []);


  return (
    <>
      {device !== undefined && hasPermission ? (
        <Camera
          frameProcessor={frameProcessor}
          device={device}
          isActive={isFocused}
          pixelFormat="yuv"
        />
      ) : (
        <View>
          <Text>No available cameras</Text>
        </View>
      )}
    </>
  );
};

Data

scanOCR(frame) returns an OCRFrame with the following data shape. See the example for how to use this in your app.

 OCRFrame = {
   result: {
     text: string, // Raw result text
     blocks: Block[], // Each recognized element broken into blocks
   ;
};

The text object closely resembles the object documented in the MLKit documents. https://developers.google.com/ml-kit/vision/text-recognition#text_structure

The Text Recognizer segments text into blocks, lines, and elements. Roughly speaking:

a Block is a contiguous set of text lines, such as a paragraph or column,

a Line is a contiguous set of words on the same axis, and

an Element is a contiguous set of alphanumeric characters ("word") on the same axis in most Latin languages, or a character in others

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

Keywords

FAQs

Package last updated on 03 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc