小编Mik*_*nce的帖子

使用更新的Python 2.6.2在Snow Leopard上安装Python映像库(PIL)

我在Snow Leopard安装过程中安装了开发人员工具,对Snow Leopard进行了全新安装(使用擦除驱动器启动).

然后我安装了Python 2.6.2,取代了Snow Leopard默认的python 2.6.1.我试过通过以下方式安装PIL:

  1. easy_install
  2. pip
  3. 下载源并python setup.py build手动运行.

所有产生相同的错误(链接到pip日志:http://drop.io/gi2bgw6).我已经看到其他人使用Snow Leopard默认python 2.6.1成功安装PIL,所以我不确定为什么我在使用2.6.2时遇到这么多麻烦.

python osx-snow-leopard python-imaging-library

26
推荐指数
3
解决办法
3万
查看次数

在Mac OS 10.7上使用带有pygame的IO的python多处理模块

我使用pygame在认知科学中运行实验,并且我经常需要大量I/O,因此我喜欢将这些任务分离到单独的进程(使用多核机器时)以提高代码的性能.但是,我遇到了一些代码可以在我的同事的Linux机器(Ubuntu LTS)上运行但不在我的mac上的情况.下面是代表最小可再现示例的代码.我的mac是2011 Macbook Air运行10.7.2并使用默认的python 2.7.1.我尝试通过预先构建的二进制文件安装pygame ,然后我也尝试从源代码安装SDL和pygame.

import pygame
import multiprocessing
pygame.init()

def f():
    while True:
        pygame.event.pump() #if this is replaced by pass, this code works

p = multiprocessing.Process(target=f)
p.start()

while True:
    pass
Run Code Online (Sandbox Code Playgroud)

正如代码中所指出的,罪魁祸首似乎是pygame.event.pump()在一个单独的过程中.当我在我的Mac上运行它时,我首先在终端中重复打印以下内容:

The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.
Run Code Online (Sandbox Code Playgroud)

然后我收到一份崩溃报告,复制到这个要点.

有关如何解决此问题的任何建议?

python macos pygame multiprocessing osx-lion

14
推荐指数
1
解决办法
3352
查看次数

通过App Store安装时卸载Xcode 4

我了解那些通过开发者网站安装Xcode 4的人能够/Developer/Library/uninstall-devtools –mode=all通过app 卸载,但是我通过App store安装,似乎在Developer文件夹中的任何位置都没有带有"uninstall"字样的可执行文件所有.关于如何卸载Xcode 4的任何建议?

xcode uninstall xcode4

12
推荐指数
3
解决办法
2万
查看次数

Linux上的OpenCV(通过python):设置帧宽/高?

我在Linux(ubuntu 12.04)上通过python使用openCV,我有一个logitech c920,我想从中获取图像.奶酪能够获得高分辨率的帧,但每当我尝试使用openCV时,我只能获得640x480的图像.我试过了:

import cv
cam = cv.CaptureFromCAM(-1)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1920)
cv.SetCaptureProperty(cam,cv.CV_CAP_PROP_FRAME_WIDTH,1080)
Run Code Online (Sandbox Code Playgroud)

但是这会在最后两行的每一行之后产生"0"的输出,并且当我随后通过以下方式获取帧时:

image = cv.QueryFrame(cam)
Run Code Online (Sandbox Code Playgroud)

生成的图像仍为640x480.

我尝试通过(在python之外)安装看似相关的工具:

sudo apt-get install libv4l-dev v4l-utils qv4l2 v4l2ucp
Run Code Online (Sandbox Code Playgroud)

我确实可以通过以下方式操纵相机的设置(再次,在python之外)

v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1
v4l2-ctl --set-parm=30
Run Code Online (Sandbox Code Playgroud)

并观察:

v4l2-ctl -V
Run Code Online (Sandbox Code Playgroud)

确实表明某些事情发生了变化:

Format Video Capture:
    Width/Height   : 1920/1080
    Pixel Format   : 'H264'
    Field          : None
    Bytes per Line : 3840
    Size Image     : 4147200
    Colorspace     : sRGB
Run Code Online (Sandbox Code Playgroud)

但是当我弹出python shell时,上面的代码表现与以前完全相同(在尝试设置属性并获得640x480的图像时打印零).

能够提高捕获的分辨率对我来说非常重要,所以我非常感谢任何人都可以提供的任何指针.

python linux webcam opencv v4l2

12
推荐指数
1
解决办法
2万
查看次数

通过python打开OpenCV:有一种快速的方法可以将一组矩形外的像素归零吗?

我有一张脸的图像,我用haar级联来检测嘴,鼻子和每只眼睛的位置(x,y,宽度,高度).我想将这些区域外的所有像素设置为零.这样做的最快(计算)方式是什么?我最终会实时对视频帧进行操作.

python opencv

10
推荐指数
1
解决办法
9101
查看次数

如何模拟R中的粉红噪声

我知道通过将输出rnorm()视为时间序列可以实现白噪声.有关如何模拟粉红噪音的任何建议?

signal-processing r noise noise-generator

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

Python opencv和多处理

我希望使用python的多处理模块创建一个进程,通过opencv的python接口连续轮询网络摄像头,将任何结果图像发送到队列,其他进程可以从中访问它们.但是,每当我尝试对队列中其他进程检索到的图像做任何事情时,我都会遇到挂起(Ubuntu 12.04上的python 2.7).这是一个最小的例子:

import multiprocessing
import cv

queue_from_cam = multiprocessing.Queue()

def cam_loop(queue_from_cam):
    print 'initializing cam'
    cam = cv.CaptureFromCAM(-1)
    print 'querying frame'
    img = cv.QueryFrame(cam)
    print 'queueing image'
    queue_from_cam.put(img)
    print 'cam_loop done'


cam_process = multiprocessing.Process(target=cam_loop,args=(queue_from_cam,))
cam_process.start()

while queue_from_cam.empty():
    pass

print 'getting image'
from_queue = queue_from_cam.get()
print 'saving image'
cv.SaveImage('temp.png',from_queue)
print 'image saved'
Run Code Online (Sandbox Code Playgroud)

此代码应该运行到"保存图像"的打印,但然后挂起.我有什么想法可以解决这个问题吗?

python opencv multiprocessing

9
推荐指数
2
解决办法
9153
查看次数

从R中的列表中绘制树图

我有一个决策树表示为R中的列表:

tree = list(
    "Bin type" = list(
        "no bin" = list(
            "SOA linearity" = list(
                "linear" = list("Linear MEM")
                , "non-linear" = list("GAMM")
            )
        )
        , "bin" = list(
            "SOA type" = list(
                "SOA as categorical" = list(
                    "Tool" = list(
                        "ANOVA"
                        , "MEM"
                    )
                )
                , "SOA as continuous" = list(
                    "SOA linearity" = list(
                        "linear" = list(
                            "Tool" = list(
                                "ANOVA"
                                , "MEM"
                            )
                        )
                        , "non-linear" = list("GAMM")
                    )
                )
            )
        )
    )
)
Run Code Online (Sandbox Code Playgroud)

有没有一种快速的方法可以将其可视化为树形图?

plot visualization r

7
推荐指数
1
解决办法
2401
查看次数

通过 h5py 在 hdf5 中进行 blosc 压缩

我正在使用 h5py 在 python 中创建 hdf5 文件,并且我想使用 blosc 作为压缩过滤器。我首先通过以下方式从源安装了 c-blosc:

wget https://github.com/Blosc/c-blosc/archive/v1.9.1.tar.gz
tar -xvf c-blosc-v1.9.1.tar.gz
cd c-blosc-v1.9.1
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
cmake --build .
cmake --build . --target install
Run Code Online (Sandbox Code Playgroud)

(注意我使用自制软件,所以我的 /usr/local 无需 sudo 即可写入)

然后我通过以下方式从源安装了 hdf5 v1.10.0:

wget http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.0/src/hdf5-1.10.0.tar.gz
tar -xvf hdf5-1.10.0.tar.gz
cd hdf5-1.10.0
./configure --enable-static=yes --enable-shared=yes --prefix=/usr/local/hdf5
make && make install
Run Code Online (Sandbox Code Playgroud)

最后我通过以下方式从源代码安装 h5py v2.6.0:

wget https://github.com/h5py/h5py/archive/2.6.0.tar.gz
tar -xvf h5py-2.6.0.tar.gz
cd h5py-2.6.0
python setup.py install
python setup.py install
Run Code Online (Sandbox Code Playgroud)

然而,当我启动 python 解释器并运行时:

import h5py
f = h5py.File('myFile.hdf5','w')
dset …
Run Code Online (Sandbox Code Playgroud)

python hdf5 h5py

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

如何构建py2exe而不出错?

我通常不是Windows用户,但我需要从我的python代码构建exe,所以我想使用py2exe来做到这一点.我有一个XP系统,我安装了python 2.6.6.我下载了py2exe-0.6.9源代码,但是当我尝试安装(通过"python setup.py install")时,我收到错误"无法找到vcvarsall.bat".我一派,碰上了这个帖子,其中一个受访者建议可安装MinGW的GCC二进制文件的定制版本在这里.我这样做了,现在当我尝试安装py2exe时,我收到了一个新错误.这是输出:

C:\Documents and Settings\Administrator\Desktop\py2exe-0.6.9>python setup.py install
C:\Documents and Settings\Administrator\Desktop\py2exe-0.6.9\py2exe\build_exe.py:16: DeprecationWarning: the sets module is deprecated
  import sets
running install
running build
running build_py
running build_ext
building '_memimporter' extension
creating build\temp.win32-2.6
creating build\temp.win32-2.6\Release
creating build\temp.win32-2.6\Release\source
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DPYTHONDLL=\"PYTHON26.DLL\" -DPYTHONCOM=\"pythoncom26.dll\" -IC:\Python26\include -IC:\Python26\PC -c source/MemoryModule.c -o build\temp.win32-2.6\Release\source\memorymodule.o
source/MemoryModule.c:30: warning: ignoring #pragma warning
source/MemoryModule.c: In function 'BuildImportTable':
source/MemoryModule.c:364: warning: pointer targets in passing argument 1 of 'MyLoadLibrary' differ in signedness
source/MemoryModule.c: In function 'GetNameTable': …
Run Code Online (Sandbox Code Playgroud)

python windows py2exe

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

为什么台球多处理模块需要"if __name __ =='__ main__'"行?

如果我有以下代码:

def f():
    print 'ok!'
    import sys
    sys.exit()

if __name__=='__main__':
    import billiard
    billiard.forking_enable(0)
    p = billiard.Process( target=f)
    p.start()
    while p.is_alive():
        pass
Run Code Online (Sandbox Code Playgroud)

脚本按预期运行,打印"ok!" 并结束.但是,如果我省略该if __name__=='__main__':行并去除以下行,我的机器(OS X)会发疯,不断产生大量的Python进程直到我killall Python.知道这里发生了什么吗?

(对于那些标记为重复的人,请注意,虽然另一个问题if __name__=='__main__'通常会询问目的 ,但我特别询问为什么在此处使用它会导致意外行为)

python program-entry-point python-multiprocessing

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

ggplot2:参考稍后对 geoms 的调用中提供给 ggplot(...) 的数据

data我经常遇到这样的场景:不同的几何对象需要查看提供给初始调用的参数的数据子集ggplot()

通常,这发生在长链之后可视化某些内容的情况下,我实际上不需要在工作区中保存数据,但我当前的解决方法是这样做,然后在每个几何中显式引用它,例如:

(
    #...
    # long chain
    # ...
) -> to_plot
(
    ggplot()
    + geom_ribbon(
        data = (
            to_plot #using intermediate object saved to workspace
            %>% dplyr::filter(
                cells_or_boots=='bootss'
            )
        )
        , mapping = aes(
            x = x
            , ymin = lo
            , ymax = hi
        )
    )
    + geom_line(
        data = (
            to_plot #using intermediate object saved to workspace
            %>% dplyr::filter(
                cells_or_boots=='cells'
            )
        )
        , mapping = aes(
            x = x
            , y = mean
        ) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 tidyverse

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

在单独的进程中读取USB cam时,OS X上的OpenCV崩溃

我正在使用OS X(10.8.4)通过cv2 python绑定运行OpenCV 2.4.5.我试图通过多处理模块在一个单独的过程中从USB网络摄像头捕获图像.如果我使用我的笔记本电脑(2011 macbook air)内部网络摄像头,一切似乎都有效,但当我尝试从usb网络摄像头(Logitech C920)读取时,我遇到了崩溃(当我使用没有多处理封装的USB摄像头时没有崩溃) .崩溃日志在这里.我正在使用的代码将可靠地重现崩溃如下.让这项工作对我来说非常重要,所以任何帮助都将非常感谢!

import multiprocessing
import cv2 #doesn't matter if you import here or in cam()

def cam():
    vc = cv2.VideoCapture(0) #modify 0/1 to toggle between USB and internal camera
    while True:
        junk,image = vc.read()

camProcess = multiprocessing.Process( target=cam )
camProcess.start()

while True:
    pass
Run Code Online (Sandbox Code Playgroud)

python macos opencv multiprocessing

2
推荐指数
1
解决办法
1610
查看次数