小编Wes*_*sey的帖子

Mac OS X上的Boost.Python Hello World

我正在尝试为Boost.Python设置和编译Hello World示例:http://www.boost.org/doc/libs/1_57_0/libs/python/doc/tutorial/doc/html/python/hello.html

我从Homebrew安装了bjam,boost,boost-build和boost-python:

brew install bjam
brew install boost
brew install boost-build
brew install boost-python
Run Code Online (Sandbox Code Playgroud)

我的python安装也是通过Homebrew.我不确定如何正确修改示例Jamroot文件,以便它与我的系统设置兼容.我将增强路径更改为: /usr/local/Cellar/boost;但我不确定需要更改的其他路径.当前设置给出了以下错误:

> bjam
notice: no Python configured in user-config.jam
notice: will use default configuration
Jamroot:26: in modules.load
*** argument error
* rule use-project ( id : where )
* called with: ( boost : /usr/local/Cellar/boost; project : requirements <library>/boost/python//boost_python <implicit-dependency>/boost//headers : usage-requirements <implicit-dependency>/boost//headers )
* extra argument project
/usr/local/share/boost-build/build/project.jam:1138:see definition of rule 'use-project' being called
/usr/local/share/boost-build/build/project.jam:311: in …
Run Code Online (Sandbox Code Playgroud)

python boost bjam boost-python

9
推荐指数
1
解决办法
3155
查看次数

更好的C#扑克框架设计?

我正在用C#编写一个扑克框架,我不喜欢我现在的设计.我的目标是拥有一个游戏引擎,可以非常快速地以批处理模式相互播放多个AI代理,并且可以与多个人(可能通过Silverlight客户端)玩多个AI代理.我希望保持高效率但保持灵活性 - 例如,它应该能够玩有限德州扑克,无限注德州扑克,限制7张牌梭哈等游戏.

我目前的设计相当笨拙且不灵活:

  • HandHistory:包含有关当前手牌的所有信息(参与者,投注等)
  • IPlayer:每个玩家定义一个GetAction(HandHistory历史)方法.
  • GameEngine:定义一个返回HandHistory对象的Play(HandInfo信息)方法.
  • PotManager:管理底池并确定每个玩家必须打多少以及他们能赢多少(例如,如果他们有不相等的筹码并全押).
  • BetManager:管理投注并确定投注结束的时间.

HandInfo类包含有关如何设置手的所有信息.Play方法看起来像这样:

HandHistory Play(HandInfo info)
{
    PotManager pots = new PotManager(info);
    BetManager bets = new BetManager(info);
    HandHistory history = CreateHistory(info);

    bets.CollectBlinds();
    if(!bets.GameOver)
    {
        DealHoleCards();
        if(bets.PlayersThatCanStillBet > 1)
            bets.CollectBets();
        if(!bets.GameOver)
        {
            DealFlop();
            ... and on and on
        }
    }

    return history;
}
Run Code Online (Sandbox Code Playgroud)

问题的出现是因为有很多小事要考虑收集百叶窗等等.Bot和Bet经理课程变成了一场噩梦,并且总是充满了虫子.此外,我的引擎设计仅支持一种游戏类型(德州扑克)而不是其他类型.

我的主要排名是效率第一,因为引擎主要用作数十亿手的AI模拟器.但是,我想有一种更优雅的方式可以做到这一点.

c# oop poker

6
推荐指数
1
解决办法
2517
查看次数

使用OpenCV检测来自一个图像的对象是否在另一个图像中

我有一个包含对象的示例图像,如下图中的耳环:

http://imgur.com/luj2Z

然后,我有一个大的候选图像集,我需要确定哪一个最有可能包含该对象,例如:

http://imgur.com/yBWgc

所以我需要为每个图像生成一个分数,其中最高分对应于最可能包含目标对象的图像.现在,在这种情况下,我有以下条件/约束来处理/周围:

1)我可以在不同的角度获得多个样本图像.

2)样本图像可能与候选图像处于不同的分辨率,角度和距离.

3)有很多候选图像(> 10,000),所以它必须相当快.

4)我愿意为速度牺牲一些精度,所以如果它意味着我们必须搜索前100名而不是前10名,这很好,可以手动完成.

5)我可以手动操作样本图像,例如概述我想要检测的对象; 候选图像不能手动操作,因为太多了.

6)我根本没有OpenCV或计算机视觉的真实背景,所以我从头开始.

我最初的想法是首先在样本图像中围绕对象绘制粗略轮廓.然后,我可以识别候选图像中的对象和角落的角落.我可以分析每个角落周围的像素,看它们是否看起来相似,然后按每个角落的最大相似度得分的总和进行排名.我也不确定如何量化类似的像素.我想只是他们的RGB值的欧几里德距离?

问题在于它忽略了对象的中心.在上面的例子中,如果耳环的角落都在金框附近,那么它就不会考虑耳环内的红色,绿色和蓝色宝石.我想我可以通过查看所有角点并通过沿着它们之间的线采样某些点来确定相似性来改善这一点.

所以我有几个问题:

A)这种思路一般是否有意义或是否有我遗漏的东西?

B)我应该调查OpenCV的哪些特定算法?我知道有多个角点检测算法,但我只需要一个,如果差异都在边缘上进行优化,那么我最好用.

C)使用算法的任何示例代码有助于我的理解?

我的语言选择是Python或C#.

c# python opencv image-processing computer-vision

6
推荐指数
2
解决办法
7497
查看次数

Heroku MongoHQ附加组件和PyMongo - OperationFailure:数据库错误:未经授权

我在使用MongoHQ Heroku插件时遇到了麻烦.本地我的应用程序工作,并且os变量在Heroku上存在且格式良好.但是,当我尝试访问数据库时,它会抛出一个错误:OperationFailure: database error: unauthorized db:my_database ns:my_database.cars lock type:0 client:128.62.187.133.如果我尝试从MongoHQ硬编码连接字符串并在本地运行,我会得到同样的错误.

我的应用程序如下:

import os
import datetime
from flask import Flask
from flask import g
from flask import jsonify
from flask import json
from flask import request
from flask import url_for
from flask import redirect
from flask import render_template
from flask import make_response
import pymongo
from pymongo import Connection
from bson import BSON
from bson import json_util

app = Flask(__name__)
def mongo_conn():
    # Format: MONGOHQ_URL: mongodb://<user>:<pass>@<base_url>:<port>/<url_path>
    if os.environ.get('MONGOHQ_URL'):
        return Connection(os.environ['MONGOHQ_URL']) …
Run Code Online (Sandbox Code Playgroud)

python heroku mongodb flask mongohq

6
推荐指数
1
解决办法
2602
查看次数

如何使用自定义索引向量化循环

我是Matlab的新手,所以我不确定这是否可行.我有一个简单的for循环:

for i=1:n
    B.x(indexB(i)) += A.x(i);
end
Run Code Online (Sandbox Code Playgroud)

其中Ax和Bx是两个长度为n的向量,而indexB是长度为n的向量,它包含从Ax到Bx的元素的适当映射

是否有可能对此循环进行矢量化?

matlab vectorization

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

haskell中的自定义concat(++)运算符

是否可以++在Haskell中为自定义数据类型定义自己的运算符?

我有:

data MyType = MyType [String]
Run Code Online (Sandbox Code Playgroud)

我想将我自己的连接运算符定义为:

instance ? MyType where
    (MyType x) ++ (MyType y) = MyType (x ++ y)
Run Code Online (Sandbox Code Playgroud)

我似乎无法在任何地方找到实例类的名称.

haskell operators

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

为ASP.NET成员资格表结构创建脚本

我正在创建一个AppHarbor MVC3应用程序,并希望使用标准的成员资格提供程序支持.AppHarbor的人告诉我,我需要为我可以在AppHarbor数据库上运行的表结构创建脚本.但是,我并不熟悉数据库.如何为默认成员资格表创建和执行脚本?

c# asp.net sql-server-2008 asp.net-mvc-3 appharbor

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

ASP.NET MVC 3 - WebDev服务器使用流畅的NHibernate泄漏内存?

我有一个ASP.NET MVC 3应用程序,它有一个MS SQL Server 2008远程数据库,通过Fluent NHibernate连接.我有另一个应用程序,它正在向URL发出各种GET请求,触发将新项目添加到数据库中.每次添加项目时,我的本地Web服务器的内存增长大约100k.

    public ActionResult AddItem(string text)
    {
        using (var DatabaseSession = new FluentDatabase().Session)
            using (var tx = DatabaseSession.BeginTransaction())
            {
                Item item = DatabaseSession
                             .QueryOver<Item>()
                             .Where(x => x.Text == text)
                             .SingleOrDefault();
                if (item == null)
                       item = new ... // initialize

                item.Text = text;

                DatabaseSession.SaveOrUpdate(item);
                tx.Commit();
                DatabaseSession.Flush();
            }

        return RedirectToAction("Index");
    }
Run Code Online (Sandbox Code Playgroud)

我知道这不是向数据库添加项目的理想方式,但这只是对其他一些功能的测试.在大约1000次调用此方法后,服务器占用了超过1GB的数据!不久之后,我的内存不足而且崩溃了.它没有多大意义,因为所有的项目都应该被垃圾收集.这里有什么我想念的吗?

fluent-nhibernate asp.net-mvc-3

3
推荐指数
1
解决办法
1133
查看次数

使用Rails 3和Geokit-rails3位置gem

我正在尝试使用geokit-rails3 gem来获取rails应用程序中的地理位置信息.我有一个简单的模型:

class Location < ActiveRecord::Base
  def lookup_ip_information(post_ip)
    ip = post_ip
    location = IpGeocoder.geocode(ip)
    puts location.full_address
    lat = location.lat
    lng = location.lng
  end
end
Run Code Online (Sandbox Code Playgroud)

当我request.remote_ip从我的控制器调用此方法时,它会抛出一个错误:uninitialized constant Location::IpGeocoder

geokit ruby-on-rails-3

3
推荐指数
1
解决办法
1229
查看次数

如何将*.dump文件中的表提取到CSV中

我有一个*.dump文件(postgresql转储),我想输出my_tablemy_table.csv.是否有更好的方法来执行此操作pg_restore -t my_table db.dump > my_table.txt,然后编写脚本以从输出创建CSV?

database postgresql pg-restore psql

3
推荐指数
1
解决办法
716
查看次数