小编nat*_*t13的帖子

OpenCV多边形的凹凸角点

问题

我正在开展一个项目,我需要获得哑铃状形状的边界框。然而,我需要尽可能少的点,并且盒子需要适合所有角落的形状。这是我用来测试的图像:模糊、破裂、哑铃形状

我不关心形状中的间隙,我只想清理它,并拉直边缘,这样我就可以获得这样的形状的轮廓:清理

我一直在尝试解决threshold()这个问题,使用它来获取它的轮廓findContours(),然后使用它approxPolyDP()来简化轮廓最终的疯狂数量的点。因此,在摆弄了大约三天之后,我怎样才能简单地得到:

  • 两个框指定哑铃的两端和中间的矩形,或
  • 一个轮廓,所有角都有十二个点

第二种选择是首选,因为这确实是我的最终目标:获得这些角落的分数。

有几点需要注意:

  • 我正在使用 OpenCV for Python
  • 输入图像中通常会有许多各种大小的形状
  • 它们只有水平或垂直定位。没有奇怪的27度角...

我需要的:

我真的不需要有人为我编写代码,我只需要一些方法或算法来完成这件事,最好是一些简单的例子。

我的代码

这是我过于干净的代码,其中包含我什至不使用的函数,但我认为我最终会使用它们:

import cv2
import numpy as np

class traceImage():

    def __init__(self, imageLocation):
        self.threshNum = 127
        self.im = cv2.imread(imageLocation)
        self.imOrig = self.im
        self.imGray = cv2.cvtColor(self.im, cv2.COLOR_BGR2GRAY)
        self.ret, self.imThresh = cv2.threshold(self.imGray, self.threshNum, 255, 0)
        self.contours, self.hierarchy = cv2.findContours(self.imThresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    def createGray(self):
        self.imGray = cv2.cvtColor(self.im, cv2.COLOR_BGR2GRAY)

    def adjustThresh(self, threshNum):
        self.ret, self.imThresh = cv2.threshold(self.imGray, threshNum, 255, 0)

    def …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing contour python-2.7

5
推荐指数
1
解决办法
5044
查看次数

我无法下载 mongoose.exe

故事

所以,我想看看小型 Web 服务器是什么样的,然后我发现了 mongoose,这是一个用于静态站点的漂亮、小型、简单的 Web 服务器。当我尝试下载它时,恐怖出现了。我尝试从这个网站获取它:http://cesanta.com/mongoose.shtml,发现Chrome总是抱怨一些网络错误。然后我让一个朋友尝试下载它,认为这是一个坏链接,但他下载得很好。所以我想,好吧,无论如何,我会让他将其转移到闪存驱动器上,然后我可以将其从那里取出。然后我发现我无法从闪存驱动器中获取该文件。Windows 文件复制对话框会在 75% 时挂起,然后突然跳到 100%,文件会在文件夹中闪烁,然后消失。所以,我想好吧,也许我的计算机上不需要它,我会从我的闪存驱动器上运行它,所以我运行了它,Windows 抱怨说该文件不存在,然后突然闪存驱动器上的文件消失了。

问题

为什么这个文件讨厌我?
我的文件系统有问题吗?
是可执行文件本身的问题吗?

细节

我和我的朋友都运行 Windows 8.1
我可以很好地下载其他文件。

windows exe file download windows-8.1

4
推荐指数
1
解决办法
7151
查看次数