相关疑难解决方法(0)

获取2D数组中局部最大值的坐标超过特定值

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)

python numpy image scipy

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

Python中的机器视觉

我想使用Python执行一些基本的机器视觉任务,我想知道在哪里可以找到帮助我入门的教程.

据我所知,唯一一个用于机器视觉的Python免费库是PyCV(显然是OpenCV的包装器),但我找不到任何合适的教程.

我的主要任务是从FireWire获取图像.在不同区域中分割图像.然后对每个区域进行统计,以确定像素区域和质心.

以前,我使用过Matlab的Image Processing Tootlbox没有任何问题.我希望在Python中找到等价的函数是graythresh,regionpropsgray2ind.

谢谢!

python matlab computer-vision

19
推荐指数
3
解决办法
6191
查看次数

Python和OpenCV.如何检测图像中的所有(已填充)圆/圆形对象?

我正在尝试制作一个打开图像的程序,扫描它的圆形/圆形并返回坐标,以便我可以使用该cv.Circle功能在检测到的圆上绘制圆圈.

我的问题是:如何使用cv.HoughCircles()?获取图像中检测到的圆的坐标/半径?

使用这个页面,我发现了如何检测圆圈(这花了我很多时间才发现,因为我不理解像阈值这样的术语,而Python的OpenCV文档真的很差,几乎没有).不幸的是,在该页面上没有显示如何提取从CvMat创建的每个圆圈中获取的信息.如何提取该信息/是否有其他方式(例如MemoryStorage())?

到目前为止这是我的代码:

import cv, opencv

def main():


    im = cv.LoadImageM("Proba.jpg")

    gray = cv.CreateImage(cv.GetSize(im), 8, 1)
    edges = cv.CreateImage(cv.GetSize(im), 8, 1)

    cv.CvtColor(im, gray, cv.CV_BGR2GRAY)
    cv.Canny(gray, edges, 50, 200, 3)
    cv.Smooth(gray, gray, cv.CV_GAUSSIAN, 9, 9)

    storage = cv.CreateMat(im.rows, 1, cv.CV_32FC3)

    cv.HoughCircles(edges, storage, cv.CV_HOUGH_GRADIENT, 2, gray.height/4, 200, 100)
    # Now, supposing it found circles, how do I extract the information?
    print storage.r



if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

另外,HoughCircles为了让我能够检测出真正的小圆圈(如屏幕上的3mm),最后两个参数需要具有什么值?

谢谢大家的时间和精力来帮助我! …

python geometry opencv image-processing detect

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

稳健检测图像中的网格图案

我用Python编写了一个程序,它自动读取这样的评分表 偏斜后的薄片

目前我正在使用以下基本策略:

  • 使用ImageMagick校正图像
  • 使用PIL读入Python,将图像转换为B&W
  • 计算计算行和列中像素的总和
  • 找到这些总和中的峰值
  • 检查这些峰所暗示的交叉点是否有填充.

运行程序的结果如下图所示: 处理后的图像

您可以在左上方显示的图像下方和右侧看到峰值图.左上图中的线是列的位置,红点表示识别的分数.直方图右下方显示每个圆的填充水平和分类线.

此方法的问题在于需要仔细调整,并且对扫描设置的差异很敏感.是否有一种更健壮的方式来识别网格,这将需要较少的先验信息(目前我正在使用有关多少点的知识),并且对于在纸张上绘制其他形状的人更加健壮?我相信可能有可能使用2D傅立叶变换,但我不确定如何.

我正在使用EPD,因此我可以使用相当多的库.

python image-processing

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

在Python中从图像中提取连接的对象

我有一个灰度png图像,我想从我的图像中提取所有连接的组件.一些组件具有相同的强度,但我想为每个对象分配一个唯一的标签.这是我的形象

在此输入图像描述

我试过这段代码:

img = imread(images + 'soccer_cif' + str(i).zfill(6) + '_GT_index.png')
labeled, nr_objects = label(img)
print "Number of objects is %d " % nr_objects
Run Code Online (Sandbox Code Playgroud)

但是我只使用了三个对象.请告诉我如何获取每个对象.

python image scipy

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

使用OpenCV进行C++生物细胞计数

我对OpenCV比较陌生,而且我没有强大的图像处理背景.目前我正在开展一个项目来编写一个程序来计算图像中显微镜下的所有生物细胞.我尝试过各种来自互联网资源的方法来对图像应用计数,但它们都没有像预期的那样运行良好.

我使用的一些方法是:

  1. 查找过滤图像的轮廓.(对于靠得很近的细胞不起作用)
  2. 高斯模糊并在图像上找到局部最大值.(与1相同的问题)
  3. Canny边缘检测(输出结果检测非细胞区段)

这是我需要计算单元格总数的图像示例.

在此输入图像描述

如果单元格不靠近,我当前的计数算法效果会更好.例如这样:

在此输入图像描述

然而,该算法仍然无法将在图像中心粘在一起的3个单元分开.

那么我该怎样做才能检测到图像中的细胞总数最少为假阴性/阳性?

c++ opencv counting cell

8
推荐指数
1
解决办法
3304
查看次数

在Python中计算图像中不同颜色的对象数

这是一张我要从中计算每种颜色的对象数的图表。什么是不使用opencv的简单方法?

[编辑2]: 我尝试过的方法如下:(1)有色物体计数

from PIL import Image
im = Image.open('./colored-polka-dots.png').getcolors()
im.sort(key=lambda k: (k[0]), reverse=True)
print('Top 5 colors: {}'.format((im[:5])))

# View non-background colors
color_values = []
for color in im[1:5]:
    color_values.append(color[1])
    arr = np.asarray(color[1]).reshape(1,1,4).astype(np.uint8)
    plt.imshow(arr)
    plt.show() # get top 4 frequent colors as green,blue,pink,ornage

# Create a dict of color names and their corressponding rgba values
color_dict = {}
for color_name,color_val in zip(['green','blue','pink','orange'],color_values):
    color_dict[color_name] = color_val

# Make use of ndimage.measurement.labels from scipy 
# to get the number …
Run Code Online (Sandbox Code Playgroud)

python opencv scipy python-imaging-library scikit-image

-1
推荐指数
1
解决办法
2317
查看次数