Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
import io, os from google.cloud import vision from PIL import Image, ImageEnhance def detect_text(image_file, credentials_file, text_area): """Detects text in an image.""" os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = credentials_file # Authenticates the client try: with Image.open(image_file, 'r') as img: # Crop the image img_cropped = img.crop(text_area) img_rgb = img_cropped.convert('RGB') # Convert the image to grayscale mode img_gray = img_rgb.convert("L") # Apply thresholding to convert gray pixels to white img_bw = img_gray.convert('L') # Reduce the brightness of the image enhancer = ImageEnhance.Brightness(img_bw) img_low_brightness = enhancer.enhance(1.5) # Enhance the contrast of the image enhancer = ImageEnhance.Contrast(img_low_brightness) img_contrast = enhancer.enhance(3) # Rotate the image img_rotated = img_contrast.rotate(0, expand=True) # Save the modified image img_rotated.save("contrast_image.png") except FileNotFoundError: print(f"Error: File not found: {image_file}") return None # Send the cropped image to the Google Cloud Vision API for text detection client = vision.ImageAnnotatorClient() content = io.BytesIO() img_contrast.save(content, format='PNG') image = vision.Image(content=content.getvalue()) response = client.text_detection(image=image) texts = response.text_annotations # Handle errors if response.error.message: raise Exception(response.error.message) # Return the first detected text as a float try: print(float(texts[0].description)) # Prints the detected text (optional) return float(texts[0].description) except IndexError: print("No text detected in the image.") return None detect_text(image_file='meter.jpg', credentials_file='GoogleVisionKeys.json', text_area=(340, 135, 580, 200)) # text_area = (left, top, right, bottom)
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)