小编M-V*_*M-V的帖子

UIImage - 实现自动级别算法

我想为我在iPhone应用程序中显示的UIImage实现"自动关卡"选项.在我尝试自己实现它之前,我想知道我应该使用的API中是否有任何图像处理方法,直方图等.或者我应该抓住底层CGImage并处理它?(我是iPhone开发新手.)

谢谢

MV

iphone algorithm image-processing

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

直方图均衡与色彩校正(iPhone/objective-C)

我试图在我的iPhone应用程序中为UIImage实现直方图均衡化方法(HE).

我读了以下内容:

http://en.wikipedia.org/wiki/Histogram_equalization

但它说:

仍然,应该注意的是,对RGB图像的红色,绿色和蓝色分量应用相同的方法可能会产生图像颜色平衡的显着变化,因为颜色通道的相对分布由于应用算法而改变.但是,如果首先将图像转换为另一个颜色空间,Lab颜色空间或特别是HSL/HSV颜色空间,则可以将算法应用于亮度或值通道,而不会导致图像的色调和饱和度发生变化.

那么这是一种可行的方法吗?

  1. 获取UIImage数据并将RGB转换为HSL
  2. 在亮度通道上应用HE
  3. 将数据转换回RGB
  4. 从数据创建新的UIImage

我想知道这会慢吗?另外,我是否必须以不同的方式处理8/16/24位数据,因为我不知道我的应用程序将使用哪种图像?或者我可以假设iPhone中的图像为24位?

我很欣赏任何指向色彩校正直方图均衡的Objective-C代码的指针.

我查看了下面的库,但它没有对HE进行任何颜色校正:

http://code.google.com/p/simple-iphone-image-processing/source/browse/#svn/trunk/Classes%3Fstate%3Dclosed

谢谢!

iphone image-processing

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

Mathematica中的Collat​​z猜想

我是Mathematica的新手,正在努力理解模式和规则.所以我尝试了以下方法:

A = {1, 2, 3, 4}
A //. {x_?EvenQ -> x/2, x_?OddQ -> 3 x + 1}

这基于:http://en.wikipedia.org/wiki/Collat​​z_conjecture

这应该是收敛的,但我得到的是:

ReplaceRepeated::rrlim: Exiting after {1,2,3,4} scanned 65536 times. >>

请帮我理解模式/规则中的错误.

问候

wolfram-mathematica

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

处理 numpy 数组归一化中的零

我有一个二维向量的 numpy 数组,我正在尝试将其标准化如下。该数组可以具有幅度为零的向量。

x = np.array([[0.0, 0.0], [1.0, 0.0]])
norms = np.array([np.linalg.norm(a) for a in x])

>>> x/norms
array([[ nan,   0.],
       [ inf,   0.]])

>>> nonzero = norms > 0.0
>>> nonzero
array([False,  True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

我能以某种方式使用nonzero该师只适用于x[i]这样nonzero[i]True?(我可以为此编写一个循环 - 只是想知道是否有一种麻木的方法来做到这一点)

或者有没有更好的方法来规范化向量数组,在这个过程中跳过所有零向量?

python numpy

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

从顶点着色器更新信息

在WebGL应用程序的顶点着色器程序中,我正在执行以下操作:

使用随时间变化的函数f(t)计算gl_Position P.

我的问题是:

是否可以存储在顶点着色器中计算的更新的P(t),以便我可以在下一个时间步骤中使用它?这对于执行一些边界测试很有用.

我已经阅读了一些关于如何使用纹理来存储和更新vextex位置的信息,但这在WebGL中是否可行,因为在OpenGL ES 1.0中,甚至顶点程序的纹理访问都不受支持?

对于一个更具体的例子,让我们说我们试图根据等式R(t)=(k*t,0,0)来移动一个点.这些位置在顶点着色器中更新,这使得点移动.现在,如果我想让点在位于R =(C,0,0)的墙上反弹.要做到这一点,我们需要点在t - dt的位置.(上一个时间步).

任何想法都赞赏.

问候

glsl webgl

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

在 Raspberry Pi 上使用 Python smbus - 与语法混淆

我正在尝试在 Raspberry Pi 上使用 python-smbus 使用 I2C 与 MMA7660 加速度计芯片进行通信。

在下面的代码中,我正在读取芯片的寄存器 0x​​00、0x01、0x02 和 0x03,并且我得到的值完全相同。查看这些值,并倾斜芯片,我可以看到它们都对应于寄存器 0x​​00,即 X 值寄存器。

输出:

...
1 1 1 2
3 3 3 3
1 1 1 1
59 60 60 60
51 51 51 51
58 58 58 58
3 3 3 3
62 62 62 62
58 58 58 58
62 62 62 62
...
Run Code Online (Sandbox Code Playgroud)

代码:

  import smbus
  import time

  bus = smbus.SMBus(1)
  # I2C address for MMA7660                                                     
  addr = 0x4C
  try:
    bus.write_byte_data(addr, 0x07, 0x00) …
Run Code Online (Sandbox Code Playgroud)

python i2c raspberry-pi

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

如何使用Python numpy对此表达式进行矢量化?

给定numpy数组P(N),D(N,N),我想计算数组A(N):

A_i = SUM(P_i - P_j) where j is such that D[i][j] is True
A_i = 0 otherwise
Run Code Online (Sandbox Code Playgroud)

所以,

A_i = N*P_i - (P_m + P_n+...) where D[i][m], D[i][n],... are all True
Run Code Online (Sandbox Code Playgroud)

我可以使用双循环和enumerate()编写上面的内容,但它很慢.只是想知道如何用numpy ufuncs来写这个.

python numpy

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

用闭包替换简单的 Python 类是否有益?

我有以下 Python 类:

class class A:
    """a class that increments internal variable"""
    def __init__(self, x):
        self._x = x
    def incr(self):
        self._x = (self._x + 1) % 10
        return self._x
Run Code Online (Sandbox Code Playgroud)

我听过一个演讲,建议这样的只有一个构造函数和另一个方法的类真的应该用一个函数代替。

所以这是我的尝试(对于 Python 2.7):

def incrX(x): 
    """closure that increments internal variable"""
    d = {'x' : x}
    def incr():
        d['x'] = (d['x'] + 1) % 10
        return d['x'] 
    return incr
Run Code Online (Sandbox Code Playgroud)

运行它:

def test1():
    """testing closure vs. class"""
    print 'class...'
    a = A(10)
    print a.incr()
    print a.incr()

    print 'closure...'
    incr = incrX(10)
    print …
Run Code Online (Sandbox Code Playgroud)

python closures

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

是否可以在动画中更新 matplotlib quiver 位置坐标?

我想用 matplotlib 绘制和动画一些粒子。每个点都有一个位置和速度。我可以使用 matplotlib 绘制单帧quiver

但是如何更新每一帧的箭袋数据?(我正在使用 matplotlib 动画类。)我读到了 (undocumented?) quiver.set_UVC(),但这似乎只更新了方向,而不是位置。有没有其他方法可以做到这一点?

python matplotlib

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

Google图片搜索 - 是否有以XML格式返回数据的API?

是否有Google Image Search API会以XML格式返回数据?

我知道AJAX API:

http://code.google.com/apis/ajaxsearch/documentation/

我正在寻找的是一种在我自己的UI中解析和显示来自Google图片搜索查询的图像的方法.

我可以尝试从以下搜索中解析HTML结果:

http://images.google.com/images?q=apple

但无法保证HTML格式不会改变.

是否有相同的官方非AJAX API(如图书搜索API)?

google-image-search

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

使用 gl_FragCoord 在四边形中创建一个洞

我正在学习 WebGL,并希望执行以下操作:

使用片段着色器创建一个带有方孔的 3D 四边形。

它看起来像我需要一套gl_FragColor基于gl_FragCoord适当。

所以我应该:

a)gl_FragCoord从窗口坐标转换为模型坐标,进行适当的几何检查,并设置颜色。

或者

b) 以某种方式将孔信息从顶点着色器传递到片段着色器。也许使用纹理坐标。这部分我不清楚。

我对实现上述任何一个都感到模糊,所以我会对其中任何一个进行一些编码提示。

我的背景是一个 OpenGL 老手,他没有跟上新的着色语言范式,现在正试图赶上......

编辑(27/03/2011):

我已经能够根据 tex coord 提示成功实现上述内容。我在下面的链接中写了这个例子:

带孔的四边形 - 示例

带孔的四边形 - 示例

glsl webgl

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

计算片段着色器中的纹理坐标(iOS/OpenGL ES 2.0)

我发现在我的片段着色器中,这两个语句给出了相同的输出:

// #1
// pos is set from gl_Position in vertex shader   
highp vec2 texc = ((pos.xy / pos.w) + 1.0) / 2.0; 

// #2 - equivalent?
highp vec2 texc2 = gl_FragCoord.xy/uWinDims.xy;
Run Code Online (Sandbox Code Playgroud)

如果这是正确的,你能解释一下数学吗?我理解#2,这是我提出的,但在论文中看到#1.这是NDC(标准化设备坐标)计算吗?

上下文是我使用纹理坐标与FBO大小相同的视口.这一切都有效,但我想了解数学.

顶点着色器的相关部分:

attribute vec4 position;
uniform mat4 modelViewProjectionMatrix;
varying lowp vec4 vColor;
// transformed position
varying highp vec4 pos;

void main()
{
    gl_Position = modelViewProjectionMatrix * position;

    // for fragment shader
    pos = gl_Position;
    vColor = aColor;
}
Run Code Online (Sandbox Code Playgroud)

片段着色器的相关部分:

// transformed position - from vsh
varying highp …
Run Code Online (Sandbox Code Playgroud)

opengl-es ios

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