使用Python-Linux进行图像扭曲
我需要使用我的Raspberry Pi 4在Python中扭曲图像的图像。嗯,我得说。我正在编写一个脚本来解决验证码问题,从而使任务自动化。所有的验证码都是由4个字母和数字组成的,字体相同,扭曲的方式也一样,就像一个巨大的“S”。我需要做的是取消图像的翻转,使其更加平坦,以便验证码读取。有什么关于如何进行的建议吗?很抱歉,我完全被难住了,甚至不知道如何开始这项任务。我尝试过安装OpenCV,但无论我怎么尝试,我都无法让它在我的Raspberry Pi 4(运行Raspbian)上工作 *旁注,为了测试并确保扭曲理论能够工作,我把一些验证码带到photoshop,并以相同的模式扭曲它们,这使它们变得足够平坦,我的Pytesseract脚本能够很好地读取它们。此外,将上传几个验证码的图片使用Python-Linux进行图像扭曲,python,opencv,raspberry-pi,captcha,image-manipulation,Python,Opencv,Raspberry Pi,Captcha,Image Manipulation,我需要使用我的Raspberry Pi 4在Python中扭曲图像的图像。嗯,我得说。我正在编写一个脚本来解决验证码问题,从而使任务自动化。所有的验证码都是由4个字母和数字组成的,字体相同,扭曲的方式也一样,就像一个巨大的“S”。我需要做的是取消图像的翻转,使其更加平坦,以便验证码读取。有什么关于如何进行的建议吗?很抱歉,我完全被难住了,甚至不知道如何开始这项任务。我尝试过安装OpenCV,但无论我怎么尝试,我都无法让它在我的Raspberry Pi 4(运行Raspbian)上工作 *旁注,为
提前感谢您的帮助 您可以使用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上相应点的偏移量。非常感谢!我会继续在我的覆盆子Pi4上注射cv2。只要我这么做,我就试试这个!!看起来很有希望!!