我正在帮助一家兽医诊所测量狗爪下的压力.我使用Python进行数据分析,现在我不得不试图将爪子分成(解剖学)子区域.
我制作了每个爪子的2D阵列,它由爪子随时间加载的每个传感器的最大值组成.这是一个爪子的例子,我用Excel绘制了我想要"检测"的区域.这些是传感器周围的2×2个盒子,具有局部最大值,它们一起具有最大的总和.

所以我尝试了一些实验并决定只查找每列和每行的最大值(由于爪子的形状,不能在一个方向上查看).这似乎可以很好地"检测"单独脚趾的位置,但它也标记了相邻的传感器.

那么告诉Python哪些最大值是我想要的最好的方法是什么?
注意:2x2正方形不能重叠,因为它们必须是单独的脚趾!
我也采用2x2作为方便,欢迎任何更高级的解决方案,但我只是一个人类运动科学家,所以我既不是真正的程序员也不是数学家,所以请保持"简单".
这是一个可以加载的版本np.loadtxt
所以我尝试了@jextee的解决方案(见下面的结果).正如你所看到的,它在前爪上很有效,但后腿的效果不太好.
更具体地说,它无法识别出第四个脚趾的小峰值.这显然是循环看起来自上而下朝向最低值的事实所固有的,而不考虑这是什么.
有谁知道如何调整@jextee的算法,以便它也可以找到第4个脚趾?

由于我还没有处理任何其他试验,我不能提供任何其他样品.但我之前提供的数据是每只爪子的平均值.该文件是一个数组,其最大数据为9个爪子,它们与盘子接触的顺序.
该图像显示了它们如何在空间上展开.

我已经为任何感兴趣的人建立了一个博客,我已经设置了一个包含所有原始测量值的SkyDrive.所以对于要求更多数据的人来说:给你更大的力量!
所以在我得到关于爪子检测和爪子分类的问题的帮助后,我终于能够检查每个爪子的脚趾检测!事实证明,除了像我自己的例子中那样大小的爪子之外,它在任何东西上都不能很好地工作.事后看来,任意选择2x2是我自己的错.
这是一个错误的例子:钉子被识别为脚趾,"脚跟"如此宽,它被识别两次!

爪子太大,因此在没有重叠的情况下采用2x2尺寸会导致一些脚趾被检测到两次.相反,在小型犬中,它经常无法找到第五个脚趾,我怀疑它是由2x2区域太大引起的.
在对我的所有测量结果进行了当前的解决方案之后,我得出了令人吃惊的结论:几乎所有的小型犬都没有找到第5个脚趾,并且对于大型犬的50%以上的影响它会发现更多!
显然我需要改变它.我自己的猜测是将neighborhood小型狗的体型改为小型犬,大型犬则更大.但是generate_binary_structure不会让我改变数组的大小.
因此,我希望其他人有更好的建议来定位脚趾,也许脚趾区域尺寸与爪子尺寸一致?
我在以前的问题上有一些非常棒的帮助来检测爪子内的爪子和脚趾,但所有这些解决方案一次只能用于一次测量.
现在我有数据包含:

显然将所有内容都放在一个大对象上并不会削减它,所以我认为我需要使用类而不是当前的大量函数.但即使我已经阅读了学习Python关于类的章节,我也无法将其应用于我自己的代码(GitHub链接)
我还觉得每次想要获取一些信息时处理所有数据都很奇怪.一旦我知道每只爪子的位置,我就没有理由再次计算它.此外,我想比较同一只狗的所有爪子,以确定哪个接触属于哪个爪子(前/后,左/右).如果我继续只使用功能,这将变得一团糟.
所以现在我正在寻找关于如何创建类的建议,让我以合理的方式处理我的数据(链接到一条狗的压缩数据).
在我之前的问题中,我得到了一个很好的答案,帮助我检测到爪子撞到压板的位置,但现在我正在努力将这些结果与相应的爪子联系起来:

我手动注释了爪子(RF =右前方,RH =右后方,LF =左前方,LH =左后方).
正如您所看到的那样,显然有一种重复的模式,它几乎在每次测量中都会出现.这是一个手动注释的6个试验的演示链接.
我最初的想法是使用启发式方法进行排序,例如:
但是,我对我的启发式方法持怀疑态度,因为一旦遇到我没想过的变化,他们就会对我失败.他们也无法应对可能有自己规则的跛脚犬的测量结果.
此外,Joe提出的注释有时会搞砸,并没有考虑到爪子的实际外观.
基于我在关于爪子内峰值检测的问题上收到的答案,我希望有更先进的解决方案来对爪子进行分类.特别是因为每个单独的爪子的压力分布和其进展是不同的,几乎像指纹.我希望有一种方法可以使用它来聚集我的爪子,而不是按照发生的顺序对它们进行排序.

所以我正在寻找一种更好的方法来用相应的爪子对结果进行排序.
对于接受挑战的任何人,我挑选了一个包含所有切片阵列的字典,其中包含每个爪子的压力数据(通过测量捆绑)和描述其位置的切片(板上和时间上的位置).
为了澄清:walk_sliced_data是一个包含['ser_3','ser_2','sel_1','sel_2','ser_1','sel_3']的字典,它们是测量的名称.每个测量包含另一个字典,[0,1,2,3,4,5,6,7,8,9,10](例如来自'sel_1'),表示提取的影响.
另请注意,可以忽略"假"影响,例如部分测量爪子的位置(空间或时间).它们只是有用,因为它们可以帮助识别模式,但不会被分析.
对于任何有兴趣的人,我都会在博客上保留有关该项目的所有更新!
from PIL import Image
import numpy as np
from scipy.ndimage.filters import maximum_filter
import pylab
# the picture (256 * 256 pixels) contains bright spots of which I wanna get positions
# problem: data has high background around value 900 - 1000
im = Image.open('slice0000.png')
data = np.array(im)
# as far as I understand, data == maximum_filter gives True-value for pixels
# being the brightest in their neighborhood (here 10 * 10 pixels)
maxima = (data == maximum_filter(data,10))
# How can …Run Code Online (Sandbox Code Playgroud) 如何使用流行的matplotlib库创建动画图表?我对GIF动画特别感兴趣.
我正在尝试创建我的爪子数据的Matplotlib动画,在那里你可以看到整个压力板上的压力分布随着时间的推移(250x帧的256x64传感器).
我在Matplotlib自己的网站上找到了一个有效的例子,并设法让它处理我自己的数据.然而,'动画'非常慢,我不知道如何加快速度.
这是一个gif Joe Kington 在另一个答案中做出的一个例子,它是关于它显示的速度.考虑到测量是在125 Hz下进行的,这使得测量看起来非常慢.如果它以30-60 fps运行,它可以在4或8秒内运行,而不是当前的20+.

我不介意使用我需要的任何工具来完成工作,只要有一些好的文档来弄清楚如何做到这一点.
所以我的问题是:我怎样才能加快这些动画的速度?
我已经实现了Ignacio的建议来放入t.Start(1),但是当图如此大时它只能"正常"运行:

class PlotFigure(Frame):
""" This class draws a window and updates it with data from DataCollect
"""
def __init__(self):
Frame.__init__(self, None, -1, "Test embedded wxFigure")
#Varying the size of Figure has a big influence on the speed
self.fig = Figure((3,3), 75)
self.canvas = FigureCanvasWxAgg(self, -1, self.fig)
EVT_TIMER(self, TIMER_ID, self.onTimer)
def init_plot_data(self):
self.datagen = DataCollect(array3d)
self.axes = self.fig.add_subplot(111)
self.axes.imshow(self.datagen.next().T)
def …Run Code Online (Sandbox Code Playgroud) 我有一个12伏的小型相机,放在一个蜂箱内.它用红外LED点亮(蜜蜂看不到红外线).它沿着电线向我的小电视监视器发送一个简单的NTSC信号.这让我可以看到蜂巢的内部,而不会打扰蜜蜂.
女王背后有一个圆点,当她在框架中时非常明显.
我希望有一些处理信号的东西,以便在皇后在帧中时进行注册.这不一定非常准确.不是处理视频,而是每隔10秒拍摄一次图像并查看是否存在一定量的亮度(表示女王在帧中)也是如此.
这很有用,因为它可以帮助养蜂人知道女王是否还活着(如果她没有出现好几天就可能意味着什么是错的).
我很想听听有关处理此视频的廉价方法的建议,特别是在低功耗的情况下.覆盆子?Arduino的?
相机示例: 这里
示例视频(帧中没有女王): 这里
我有几个单色图像(黑色和白色而不是灰度),有一些奇形怪状的物体.我正在尝试使用python27,PIL,scipy&numpy以及以下方法提取每个对象:
我看过http://www.scipy.org/Cookbook/Watershed和http://scikits-image.org/docs/dev/auto_examples/plot_contours.html这些确实有效,但我特别喜欢希望边界框是矩形的,以确保任何"略微断开"的位都包含在边界框中.理想情况下,为了处理断开的位(例如左下方的blob),我会有某种阈值控制.关于什么工具箱最适合这个的任何想法?

我正在写一个图像处理应用程序.我只是想知道哪种编程语言最合适.Python或PHP.这个过程是基于系统而不是基于Web的,所以我只是在考虑Python是否可以提供更多帮助.
让我知道你的想法!
我将如何找到下图中数字周围空白区域的边界框或窗口?:

高度:762像素宽度:1014像素
类似的东西:{x-bound:[x-upper,x-lower], y-bound:[y-upper,y-lower]}所以我可以剪切到文本并输入tesseract或一些OCR.
我曾想过将图像分割成硬编码的块大小并随机分析,但我认为它太慢了.
示例代码使用pyplot改编自(使用python和PIL如何获取图像中的文本块?):
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
im = Image.open('/home/jmunsch/Pictures/Aet62.png')
p = np.array(im)
p = p[:,:,0:3]
p = 255 - p
lx,ly,lz = p.shape
plt.plot(p.sum(axis=1))
plt.plot(p.sum(axis=0))
#I was thinking something like this
#The image is a 3-dimensional ndarray [[x],[y],[color?]]
#Set each value below an axes mean to 0
[item = 0 for item in p[axis=0] if item < p.mean(axis=0)]
# …Run Code Online (Sandbox Code Playgroud) python ×10
numpy ×3
image ×2
matplotlib ×2
scipy ×2
animation ×1
arduino ×1
class-design ×1
oop ×1
php ×1