我正在为包含许多图像对的数据集编写一个简单的转换。作为数据增强,我想对每一对应用一些随机变换,但该对中的图像应该以相同的方式进行变换。\n例如,给定一对两个图像A
和B
,如果A
水平翻转,则B
必须水平翻转作为A
。那么下一对C
和D
应该与A
和进行不同的变换B
,但是C
和 也D
以相同的方式进行变换。我正在尝试用下面的方式
import random\nimport numpy as np\nimport torchvision.transforms as transforms\nfrom PIL import Image\n\nimg_a = Image.open("sample_ajpg") # note that two images have the same size\nimg_b = Image.open("sample_b.png")\nimg_c, img_d = Image.open("sample_c.jpg"), Image.open("sample_d.png")\n\ntransform = transforms.RandomChoice(\n [transforms.RandomHorizontalFlip(), \n transforms.RandomVerticalFlip()]\n)\nrandom.seed(0)\ndisplay(transform(img_a))\ndisplay(transform(img_b))\n\nrandom.seed(1)\ndisplay(transform(img_c))\ndisplay(transform(img_d))\n
Run Code Online (Sandbox Code Playgroud)\n然而\xe3\x80\x81上面的代码没有选择相同的转换,并且根据我的测试,它取决于调用的次数transform
。
有没有办法transforms.RandomChoice
在指定时强制使用相同的转换?
我正在研究 Python 中的算法并解决一个问题:
让 x(k) 是一个递归定义的字符串,基本情况 x(1) = "123" 并且 x(k) 是 "1" + x(k-1) + "2" + x(k-1) + " 3”。给定三个正整数 k、s 和 t,找到子串 x(k)[s:t]。
例如,如果 k = 2,s = 1 且 t = 5,x(2) = 112321233 且 x(2)[1:5] = 1232。
我已经使用一个简单的递归函数解决了它:
def generate_string(k):
if k == 1:
return "123"
part = generate_string(k -1)
return ("1" + part + "2" + part + "3")
print(generate_string(k)[s,t])
Run Code Online (Sandbox Code Playgroud)
虽然我的第一种方法给出了正确的答案,但问题是当 k 大于 20 时构建字符串 x 花费的时间太长。当 k 小于 50 时,程序需要在 16 秒内完成。我尝试使用记忆化,但它没有帮助,因为我不允许缓存每个测试用例。因此我认为我必须避免使用递归函数来加速程序。有什么我应该考虑的方法吗?
我正在尝试对文档图片进行 OCR,我目前的方法是
cv2.findContours()
如果图像没有阴影,上述方法效果很好。现在我想获得阴影图片的轮廓。我的第一次尝试是用于cv2.adaptiveThreshold
步骤 2。自适应阈值成功地削弱了阴影,但生成的图像失去了纸张和背景之间的对比度。这使得 cv2 无法找到纸张的轮廓。所以我需要使用其他方法来去除阴影。
有什么办法可以去除阴影并保持背景颜色吗?
作为参考,这里是我正在使用各种方法处理的示例图片。从左开始,我做了
我的目标是获得第二张没有阴影的图片。
请注意,我其实有一个专门针对图片的临时解决方案,就是将图片有阴影的部分单独处理。然而,它不是阴影图片的通用解决方案,因为它的性能取决于阴影的大小、形状和位置,所以请使用其他方法。
这是原图。
我写了一个简单的脚本来从多个网站获取 html。尽管直到昨天我对脚本还没有任何问题。它突然开始抛出异常。
Traceback (most recent call last):
File "crowling.py", line 45, in <module>
result = requests.get(url)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/sessions.py", line 685, in send
r.content
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/models.py", line 829, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/models.py", line 754, in generate
raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(54, 'Connection reset by …
Run Code Online (Sandbox Code Playgroud)