[OpenCV][Python]OCR辨識影像前處理_增加邊框

更新於 發佈於 閱讀時間約 5 分鐘

在tesseract-ocr辨識應用中,建議的留白邊框為10pixl,若Label列印的太剛好,沒有任何的邊框時,就會辨識不到文字。

本文將帶大家如何讓圖像增加邊框。

結果圖

示意的比較誇張,我讓邊框增加100pixl,圖片大小原為211*80。

raw-image

程式碼

import cv2
import numpy as np

def add_spacing_img(img,spacing):
# 創建黑色背景的圖像
h,w = img.shape[:2]
new_height = h + 2 * spacing
new_width = w + 2 * spacing

# 如果是彩色圖
if len(img.shape) == 3 and img.shape[2] == 3:
res_img = np.zeros((new_height, new_width, 3), dtype=np.uint8)
else:
res_img = np.zeros((new_height, new_width), dtype=np.uint8)

res_img[spacing:h+spacing, spacing:w+spacing] = img

return res_img

img = cv2.imread(f'圖片路徑')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
new_image = add_white_spacing_img(gray_img,100)

cv2.imshow('new_image',new_image)
cv2.waitKey(0)
cv2.destroyAllWindows()


函式詳細說明

函式定義

def add_spacing_img(img, spacing):

這是函式的定義。函式名為 add_spacing_img,接受兩個參數:

  • img: 要處理的圖像(可以是灰度圖或彩色圖像)。
  • spacing: 圖像四周要添加的黑色邊框寬度。

讀取圖像尺寸

h, w = img.shape[:2]

取得圖像的高度 (h) 和寬度 (w)。

定義新圖像的尺寸

new_height = h + 2 * spacing
new_width = w + 2 * spacing

定義增加間距後的新圖像的高度和寬度。新的高度是原高度加上兩倍的間距(上下各一),新的寬度是原寬度加上兩倍的間距(左右各一)。

創建黑色背景的圖像

if len(img.shape) == 3 and img.shape[2] == 3:
res_img = np.zeros((new_height, new_width, 3), dtype=np.uint8)
else:
res_img = np.zeros((new_height, new_width), dtype=np.uint8)

這段程式碼根據輸入圖像的類型創建一個黑色背景的新圖像:

  • 如果輸入圖像是彩色圖像(有三個通道),則創建一個尺寸為 (new_height, new_width, 3) 的黑色圖像。
  • 如果輸入圖像是灰度圖(只有一個通道),則創建一個尺寸為 (new_height, new_width) 的黑色圖像。

將原圖像放置在新圖像的中央

res_img[spacing:h+spacing, spacing:w+spacing] = img

這行程式碼將原圖像放置在新圖像的中央位置。具體做法是:

  • 將新圖像從第 spacing 行到第 h+spacing 行,從第 spacing 列到第 w+spacing 列的區域設置為原圖像的像素值。

假設要白色邊框,只需要更動第11行~14行。

# 如果是彩色圖像
if len(img.shape) == 3 and img.shape[2] == 3:
res_img = np.ones((new_height, new_width, 3), dtype=np.uint8) * 255
else: # 如果是灰度圖像
res_img = np.ones((new_height, new_width), dtype=np.uint8) * 255

說明

  • np.ones 創建一個所有元素為1的數組。對於彩色圖像,數組的形狀是 (new_height, new_width, 3);對於灰度圖像,數組的形狀是 (new_height, new_width)
  • * 255 將所有元素乘以255,這樣每個像素的值都會是255(對於8位圖像,255代表白色)。


最後提醒,增加邊框在OCR讀取前,在增加就好,在原圖增加白色或黑色邊框,若跟原圖背景差異太大,只會被OCR辨識模型視為雜訊而已。


其他tesseract相關文章

[OCR][Python]tesseract 辨識模型Fine tune

[OCR_應用]Tesseract-OCR_Config說明

[OCR_應用]Tesseract-OCR_擷取字元面積

[OCR][Python]測試tesseract與easyOCR誰比較準跟快

avatar-img
128會員
217內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
本文將說明如何去辨識出圖片文字​位置及高寬。
在文字辨識中,適當的增加一文字彼此間的間隔是有幫助於辨識的,原因在大多數OCR引擎在處理字符時會依賴空白區域來區分不同的字符。如果字符之間的間隔過小,OCR引擎可能會將相鄰的字符誤認為一個單一的字符或難以正確切割字符。增加間隔可以幫助OCR引擎更準確地識別和切割每個字符。 本文說明如何增加OCR間
在影像處理中,有時候我們只想特別關注某個感興趣的區域時,就是ROI的概念,擷取此範圍的圖像來做處理。 設定超過圖像邊界時就會報錯,本文主要介紹如何擷取影像的同時,避免設定錯誤造成程式崩潰的狀況。 擷取圖像示意圖 ROI程式範例 import cv2 import numpy as np
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
在影像辨識中,若遇到物件與背景難以分辨的狀況下,先做一下色彩分析,知道了色彩強度階層上的像素數,有助於了解後續需要做什麼處理,比較好分割出辨識物。 若想辨識的物件與背景的RGB值過於接近,也比較好說明此狀況,為什麼較難分割出物件。 成果呈現 第一張圖:左邊為原圖,右邊為分析結果的圖,用其他顏
呈上篇文章,針對單排的圖像文字增加間隔,但如果文字是雙排呢 [OpenCV][Python]OCR分割及增加間隔[單排文字]
本文將說明如何去辨識出圖片文字​位置及高寬。
在文字辨識中,適當的增加一文字彼此間的間隔是有幫助於辨識的,原因在大多數OCR引擎在處理字符時會依賴空白區域來區分不同的字符。如果字符之間的間隔過小,OCR引擎可能會將相鄰的字符誤認為一個單一的字符或難以正確切割字符。增加間隔可以幫助OCR引擎更準確地識別和切割每個字符。 本文說明如何增加OCR間
在影像處理中,有時候我們只想特別關注某個感興趣的區域時,就是ROI的概念,擷取此範圍的圖像來做處理。 設定超過圖像邊界時就會報錯,本文主要介紹如何擷取影像的同時,避免設定錯誤造成程式崩潰的狀況。 擷取圖像示意圖 ROI程式範例 import cv2 import numpy as np
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
在影像辨識中,若遇到物件與背景難以分辨的狀況下,先做一下色彩分析,知道了色彩強度階層上的像素數,有助於了解後續需要做什麼處理,比較好分割出辨識物。 若想辨識的物件與背景的RGB值過於接近,也比較好說明此狀況,為什麼較難分割出物件。 成果呈現 第一張圖:左邊為原圖,右邊為分析結果的圖,用其他顏
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
在數字化時代,PDF文件廣泛使用,但傳統處理方式顯得力不從心。本文推薦pdftopdf.ai等工具,通過OCR識別,將圖片中的文字轉化為可編輯、可搜索的文本。探討PDF文檔分析的AI工具,功能和價格。描述其用途以解決掃描件中文字無法直接搜索的困擾,提高工作效率。
Thumbnail
學習如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
在本文中,我們將瞭解如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
什麼是 OCR 光學字元辨識技術?它是當今數位時代中不可或缺的重要工具之一,能夠將紙本文件、圖片或 PDF 中的文字快速、準確地轉換成數位檔案,從而極大地提升了資料處理效率,成為各行各業數位轉型的關鍵利器。不僅如此,OCR 技術還能有效減少人為錯誤,幫助企業提升整體營運效率,從而在市場競爭中取得優勢
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
點陣圖 點陣圖是由許多方格像素組成的圖片, 因此我們常常在將圖片放大時會呈現像是馬賽克的狀況, 假設期望圖片越清晰那所需要的像素會較多個, 因此空間耗用量也相對較大。 常見的格式有: .JPG .PNG .GIF .BMP .TIFF等格式。 繪製程式碼: 向量圖 向量
Thumbnail
EasyOCR是一個能夠幫助你對圖片中的文字進行辨識的工具,透過進階分析,可以應用在文件掃描、自動化數據輸入、發票掃描等領域。本章節將介紹如何安裝、引用模型、進行文字辨識、以及辨識結果的分析。透過學習,你可以建立屬於自己的文字辨識系統。
Thumbnail
前篇測試如何把提示詞生成的圖像細節提高,這篇要測試的工作流是把任意圖像載入後經由放大模型放大,同時測試放大後重繪看看效果如何。
Thumbnail
《包圍》 照夜白電腦繪圖作品 使用軟體:Photoshop
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
在數字化時代,PDF文件廣泛使用,但傳統處理方式顯得力不從心。本文推薦pdftopdf.ai等工具,通過OCR識別,將圖片中的文字轉化為可編輯、可搜索的文本。探討PDF文檔分析的AI工具,功能和價格。描述其用途以解決掃描件中文字無法直接搜索的困擾,提高工作效率。
Thumbnail
學習如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
在本文中,我們將瞭解如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
什麼是 OCR 光學字元辨識技術?它是當今數位時代中不可或缺的重要工具之一,能夠將紙本文件、圖片或 PDF 中的文字快速、準確地轉換成數位檔案,從而極大地提升了資料處理效率,成為各行各業數位轉型的關鍵利器。不僅如此,OCR 技術還能有效減少人為錯誤,幫助企業提升整體營運效率,從而在市場競爭中取得優勢
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
點陣圖 點陣圖是由許多方格像素組成的圖片, 因此我們常常在將圖片放大時會呈現像是馬賽克的狀況, 假設期望圖片越清晰那所需要的像素會較多個, 因此空間耗用量也相對較大。 常見的格式有: .JPG .PNG .GIF .BMP .TIFF等格式。 繪製程式碼: 向量圖 向量
Thumbnail
EasyOCR是一個能夠幫助你對圖片中的文字進行辨識的工具,透過進階分析,可以應用在文件掃描、自動化數據輸入、發票掃描等領域。本章節將介紹如何安裝、引用模型、進行文字辨識、以及辨識結果的分析。透過學習,你可以建立屬於自己的文字辨識系統。
Thumbnail
前篇測試如何把提示詞生成的圖像細節提高,這篇要測試的工作流是把任意圖像載入後經由放大模型放大,同時測試放大後重繪看看效果如何。
Thumbnail
《包圍》 照夜白電腦繪圖作品 使用軟體:Photoshop