[英]Image Warping Using Python - Linux
我需要使用我的 Raspberry Pi 4 在 Python 中扭曲圖像的圖像。好吧,我應該說 unwarp。 我正在編寫一個腳本來解決 CAPTCHA 代碼以自動執行任務。 所有的 CAPTCHA 代碼都由 4 個字母和數字相同的字體組成,並且都以相同的方式扭曲,在一個巨大的側面“S”的形狀中。 我需要做的是解開圖像,使其更平整,以便驗證碼閱讀。 關於如何解決這個問題的任何建議? 我很抱歉,我完全被難住了,甚至不知道如何開始這項任務。 我已經嘗試安裝 OpenCV,但無論我嘗試什么,我都無法讓它在我的 Raspberry Pi 4(運行 Raspbian)上運行。
*旁注,為了測試並確保扭曲理論有效,我將一些驗證碼代碼帶到 photoshop 並以相同的模式扭曲它們,並將它們壓平,我的 Pytesseract 腳本能夠很好地閱讀它。 此外,將上傳幾個驗證碼的圖片。
在此先感謝您的幫助!
你可以使用 cv2.remap 來做這種事情,例如
import numpy as np
import cv2
def remap_test(img_arr):
H,W = img_arr.shape[0:2]
map = np.mgrid[0:H,0:W]
# start off with a 'do-nothing' or identity xform, add to that as desired
map_x = map[1].astype(np.float32)
map_y = map[0].astype(np.float32)
# add a sine-wave offset to the x-values
for i in range(H):
map_x[i,:]=map_x[i,:]+30*np.sin(2*3.14*float(i)/H)
img_warped = cv2.remap(img_arr,map_x,map_y,cv2.INTER_LINEAR)
這里有一些示例結果,我使用上述正弦來制作近似 S。您可以用您正在尋找的確切曲線替換該正弦,例如,如果您跟蹤從直線到 S 上相應點的偏移量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.