- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
到目前为止,我一直在尝试使用 OpenCV 获取边缘代码:
def autocrop(image, threshold=0):
"""Crops any edges below or equal to threshold
Crops blank image to 1x1.
Returns cropped image.
"""
if len(image.shape) == 3:
flatImage = np.max(image, 2)
else:
flatImage = image
assert len(flatImage.shape) == 2
rows = np.where(np.max(flatImage, 0) > threshold)[0]
if rows.size:
cols = np.where(np.max(flatImage, 1) > threshold)[0]
image = image[cols[0]: cols[-1] + 1, rows[0]: rows[-1] + 1]
else:
image = image[:1, :1]
return image
no_border = autocrop(new_image)
cv2.imwrite('no_border.png',no_border)
结果是这张图片,接下来如何去掉那些框
更新:
我发现该解决方案适用于白色背景,但是当我更改背景颜色时,边框没有被移除
已编辑
我已经尝试了这张图片的解决方案
但是结果是这样的
我如何才能完全移除边界框。
最佳答案
为此我们使用 floodFill
功能。
import cv2
import numpy as np
if __name__ == '__main__':
# read image and convert to gray
img = cv2.imread('image.png',cv2.IMREAD_UNCHANGED)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# threshold the gray image to binarize, and negate it
_,binary = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
binary = cv2.bitwise_not(binary)
# find external contours of all shapes
_,contours,_ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# create a mask for floodfill function, see documentation
h,w,_ = img.shape
mask = np.zeros((h+2,w+2), np.uint8)
# determine which contour belongs to a square or rectangle
for cnt in contours:
poly = cv2.approxPolyDP(cnt, 0.02*cv2.arcLength(cnt,True),True)
if len(poly) == 4:
# if the contour has 4 vertices then floodfill that contour with black color
cnt = np.vstack(cnt).squeeze()
_,binary,_,_ = cv2.floodFill(binary, mask, tuple(cnt[0]), 0)
# convert image back to original color
binary = cv2.bitwise_not(binary)
cv2.imshow('Image', binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
关于python opencv crop使用等高线层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50728186/
我正在尝试裁剪一张图片,然后将裁剪后的图片粘贴到另一张图片的中心。理想情况下,我希望裁剪后的图像小于粘贴图像,以便粘贴图像周围有边框,但我不知道这是否可能。 这是我尝试过的方法(以及产生的错误消息):
我尝试从 SD 卡中选择一张图片,然后对其进行裁剪。ACTION_PICK 可以,但是当我调用 ACTION_CROP 时,我的系统图库应用程序(我称之为 A)无法完成操作,但另一个应用程序 (B)
我有一个类,它接收用相机拍摄的帧。然后,它将帧传递给相机计算器,后者根据相机计算器的宽高比设置进行一些处理和裁剪。 当我有... @Override public void receivePictur
我正在尝试使用 JQuery cropper plugin 实现裁剪图像上传系统但是我在裁剪图像部分时遇到了困难 问题是 size of the cropped image is larger tha
我将如何找到下图中数字周围空白区域的边界框或窗口?: 原图: 高度:762 像素宽度:1014 像素 目标: 类似于:{x-bound:[x-upper,x-lower], y-bound:[y-up
选择图像后,我在两个地方渲染它,一个在 react-easy-crop(4:3 宽高比)中,另一个在单独的 div(960w*510h) 中。所以每当我改变我的裁剪位置时在 react-easy-cr
我目前正在构建一个深度学习模型来识别图像。据我所知,数据增强(例如随机裁剪图像)将减少模型的过度拟合。然而,我不确定过度这样做是否会导致模型变得更糟糕。当然,我可以尝试一种裁剪较多的一种,一种裁剪较少
想要自动化并仅捕获 map 部分并将其保存到不同的文件中,即删除矩形之外的任何内容。我尝试探索 Photoshop 的魔棒和优化边缘工具,但不确定我的方法是否遗漏了任何内容。看起来裁剪或修剪可能无法自
本质上,我想要的是创建一个带有裁剪图形的Button。从某种意义上来说,Image 是在裁剪的,Button 是一个洞,显示的是Graphic。截至目前,它看起来像 但是,我希望图形适合按钮,即使它更
我得到了一个尺寸为宽度x高度的元素矩阵,该矩阵是动态分配的。我需要“裁剪”由以下矩形定义的该矩阵的一部分: (start_col, start_line) (end_col, end_line) 示例
好吧,这听起来像是一个疯狂的问题,但我的网站上有一个 Google map (API v3),有时我在 map 上有大量标记。是否存在任何插件,或者编写一个插件有多困难(入门代码?),这将允许我让用户
这是我的困境。我有一个 315x210px 的盒子,以及一堆各种大小的图像,一些具有疯狂的宽度/高度比,例如 210:1,而另一些则具有 2:3 等的比例。 我正在尝试将这些图像嵌入框中,并让它们尽可
我正在使用一些 javascript 使图像看起来像是被裁剪了。我基本上是找到高度超过 400 像素的图像,找出它们有多少像素超过 400 像素,将其拆分,并在顶部和底部制作负边距。然后,我将图像包裹
有人知道如何在 flutter 中裁剪捕获的图像吗?我只是想通过裁剪捕获的图像来识别特定的图像文本。 我只想裁剪 hello world 并从图像中排除 Acer。我想像第二张图片一样裁剪。非常感谢任
我需要获取图像的特定裁剪并将其放在另一个图像的某个位置并调整大小。 我可以在一个命令中裁剪第一个图像并将其保存到一个文件中,然后我可以在另一个命令中合成这两个图像。 但是,我想在一个命令中完成它 -
我正在尝试使用更大的背景图像制作游戏图 block 并裁剪它们,但在保存前 17 张图像后,我开始遇到问题。第 18 个图像底部变黑,其余图像全黑。有什么想法吗? 这是我的代码。图片大小=(512,
我有一张图片。我想从图片的左边裁剪 10 像素,从右边裁剪 10 像素。我使用下面的代码来做到这一点 string oldImagePath="D:\\RD\\dotnet\\Images\\
在经典的模式框中,我有这样的东西: 采用这种风格: #container { position: absolute; overflow: hidden; } #closeBut
我有一个奇怪的菜单要编码,我不知道该怎么做,我有这个 100% 宽的标题条,左侧是 Logo ,右侧是菜单。 strip 越过全屏背景。所以,我需要事件链接以某种方式裁剪标题条,比如打个洞。我附上了一
我运行了 canny 函数,结果如下所示: 我想研究这两个区域的“线”,所以我想裁剪它们:像 顺便说一句,“线”可以在不同的位置:比如 我不是要代码,而是要我如何做的想法提前致谢 ! 最佳答案 缩小边
我是一名优秀的程序员,十分优秀!