在过去的几年里,我参与过的最有趣的项目之一是关于图像处理的项目.我们的目标是建立一个能够识别可口可乐"罐头"的系统(请注意,我正在强调'罐头'这个词,你会在一分钟内看到原因).您可以在下面看到一个示例,其中可以使用缩放和旋转在绿色矩形中识别.

对项目的一些限制:
所以你最终可能会遇到这样棘手的事情(在这种情况下,我的算法完全失败):

我不久前做了这个项目,并且做了很多乐趣,我有一个不错的实现.以下是有关我的实施的一些细节:
语言:使用OpenCV库在C++中完成.
预处理:对于图像预处理,即将图像转换为更原始的形式以给出算法,我使用了两种方法:

算法:我为这个任务选择的算法本身取自这本关于特征提取的神奇书籍,称为广义霍夫变换(与常规Hough变换有很大不同).它基本上说了几件事:
最后,你得到了一张投票的热图,例如,这里所有罐子轮廓的像素都会投票给它的引力中心,所以你会在同一个像素对应的投票中得到很多票.中心,并将在热图中看到如下峰值:

一旦你有了这个,一个简单的基于阈值的启发式可以给你中心像素的位置,你可以从中获得比例和旋转,然后围绕它绘制你的小矩形(最终的比例和旋转因子显然将相对于你原始模板).理论上至少......
结果:现在,虽然这种方法在基本情况下起作用,但在某些方面却严重缺乏:
你能帮助我改进我的特定算法,只使用OpenCV功能来解决上面提到的四个具体问题吗?
我希望有些人也会从中学到一些东西,毕竟我认为不仅要问问题的人应该学习.:)
运行我的应用程序时,我有时会收到错误too many files open.
运行ulimit -a报告限制为1024.如何将限制增加到1024以上?
编辑
ulimit -n 2048权限错误中的结果.
我NoSuchMethodError在运行Java程序时遇到错误.怎么了,怎么解决?
我是Python新手并阅读其他人的代码:
应该urllib.urlopen()跟着urllib.close()?否则,一个人会泄漏连接,对吗?
无论出于何种原因,我们公司都有一个编码指南,规定:
Each class shall have it's own header and implementation file.
因此,如果我们编写一个名为的类,MyString我们需要一个关联的MyStringh.h和MyString.cxx.
还有其他人这样做吗?有没有人看到任何编译性能影响?10000个文件中的5000个类的编译速度是否与2500个文件中的5000个类一样快?如果没有,差异是否明显?
[我们编写C++并使用GCC 3.4.4作为我们的日常编译器]
我的主分支布局是这样的:
/ < - 顶级
/ client < - 桌面客户端源文件
/ server < - Rails app
我想做的只是拉下我的/ server目录deploy.rb,但我似乎找不到任何办法./ client目录很大,因此设置一个钩子来复制/服务器到/将无法正常工作,它只需要拉下Rails应用程序.
例
我有Person,SpecialPerson和User.Person并且SpecialPerson只是人 - 他们在站点上没有用户名或密码,但是它们存储在数据库中以便保存记录.用户拥有所有相同的数据,Person并且可能SpecialPerson与在站点中注册的用户名和密码一起使用.
你会如何解决这个问题?您是否有一个Person表存储一个人共有的所有数据并使用密钥查找他们的数据SpecialPerson(如果他们是特殊的人)和用户(如果他们是用户),反之亦然?
我试图找出最快的矩阵乘法方法,尝试了3种不同的方法:
numpy.dot(a, b)ctypesPython中的模块与C连接.这是转换为共享库的C代码:
#include <stdio.h>
#include <stdlib.h>
void matmult(float* a, float* b, float* c, int n) {
int i = 0;
int j = 0;
int k = 0;
/*float* c = malloc(nay * sizeof(float));*/
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
int sub = 0;
for (k = 0; k < n; k++) {
sub = sub + a[i * n + …Run Code Online (Sandbox Code Playgroud) 在我看来,AOP是一个有趣的编程范例.但是,目前还没有关于stackoverflow的讨论(至少我找不到它们).你对此有何看法?你在项目中使用AOP吗?或者你认为它是一种利基技术,不会长时间存在或者不会成为主流(就像OOP一样,至少在理论上会这样做))?
如果您确实使用AOP,请告诉我们您使用的工具.谢谢!
有没有办法将列表项与参数一起映射到函数.我有一个清单:
pages = [p1, p2, p3, p4, p5...]
Run Code Online (Sandbox Code Playgroud)
我必须调用myFunc与每个列表元素相对应的函数以及其他参数,以便可以计算以下内容
myFunc(p1, additionalArgument)
myFunc(p2, additionalArgument)
Run Code Online (Sandbox Code Playgroud)
等等...
这样做有什么优雅的方法吗?我是新手所以请不要介意.
python ×3
c++ ×2
algorithm ×1
aop ×1
benchmarking ×1
c ×1
capistrano ×1
deployment ×1
git ×1
java ×1
linux ×1
oop ×1
opencv ×1
paradigms ×1
performance ×1
urllib ×1