- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的图像看起来像这样,有一些较大的杂质/曝光过度的 Blob 。通常,它们是否被检测到并不重要,因为测量是时间解析的,因此它们稍后会被删除。
但是,我对尽可能多的小点感兴趣 - 尽可能快。 skimage.feature.peak_local_max
做得非常好,并且很容易在不同的数据上使用,因为不需要花太多时间进行强度缩放。
问题是,由于某种原因,大 Blob 会带来非常强烈的积极影响。
import skimage.io
import skimage.feature
import skimage.morphology
from matplotlib.collections import PatchCollection
import matplotlib.pyplot as plt
def plotRoi(spots, img_ax, color, radius):
patches = []
for spot in spots:
y, x = spot
c = plt.Circle((x, y), radius)
patches.append(c)
img_ax.add_collection(PatchCollection(patches, facecolors = "None", edgecolors = color, alpha = 0.3, linewidths = 1))
img = skimage.io.imread("/Path/to/img.png")
img = img[:,:,0]
fig, ax = plt.subplots()
ax.imshow(img, cmap = "Greys")
spots = skimage.feature.peak_local_max(img, min_distance = 0, exclude_border = True, num_peaks = 2000)
plotRoi(spots, ax, "red", radius = 10)
plt.show()
在某些图像中搜索数千个点会导致大量局部最大值几乎彼此重叠。有没有办法避免这种情况,例如通过在图像加载上应用过滤器,因为我不想转向较慢的峰值拟合类型?
最佳答案
问题是在具有完全相同值的像素区域中存在峰值。解决此问题的一种方法是将峰合并到这些区域的质心。
下面我重新创建了问题并按照所述解决了它。
import numpy as np
import matplotlib.pyplot as plt
from skimage.feature import peak_local_max
from scipy.ndimage.measurements import center_of_mass, label
# Generate test data with two peaks, one of which consists of two pixels of equal value
image = np.zeros((11,11),dtype=np.uint8)
image[5,3] = 128
image[5,2] = 255
image[5,7:9] = 255
image[6,8] = 128
# Finding peaks normally; results in three peaks
peaks = peak_local_max(image)
# Find peaks and merge equal regions; results in two peaks
is_peak = peak_local_max(image, indices=False) # outputs bool image
labels = label(is_peak)[0]
merged_peaks = center_of_mass(is_peak, labels, range(1, np.max(labels)+1))
merged_peaks = np.array(merged_peaks)
# Visualize the results
fig,(ax1,ax2)=plt.subplots(1,2)
ax1.imshow(image.T,cmap='gray')
ax1.plot(peaks[:,0],peaks[:,1],'ro')
ax2.imshow(image.T,cmap='gray')
ax2.plot(merged_peaks[:,0],merged_peaks[:,1],'ro')
结果:
关于python - 由于图像杂质,skimage 峰值局部最大值发现多个非常接近的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51672327/
当我尝试使用以下方法将图像转换为灰度时: from skimage.io import imread from skimage.color import rgb2gray mountain_r = r
我得到了 from skimage.measure import find_contours -----------------------------------------------------
我正在尝试获取 texture properties来 self 使用 skimage.feature 中的 greycomatrix 创建的 GLCM。我的输入数据是具有多个波段的图像,我想要每个像
我正在使用 sci-kits 模块 skimage 将图像从 RGB 色彩空间转换为 LAB,然后再转换回来。我从这个问题中发现了以下功能:Convert an image RGB->Lab with
我想将适合格式的图像调整为更小的尺寸。例如,我想将我的 100x100 像素图像调整为 58x58 像素图像。数组的值是强度或通量值。我希望在转换后保留图像的总强度。这不适用于 skimage 调整大
(尝试不在这里发布示例,但我认为这个问题很笼统,没有必要。) 我正在使用 skimage.transform.warp 来扭曲 200x2000 图像,给定使用 skimage.transform.P
我正在使用 skimage.transform.resize 调整图像大小,但我得到了一个非常奇怪的输出,我不知道为什么。谁能帮忙? 这是我的代码: import matplotlib.pyplot
我正在尝试使用 skimage.transform.resize 函数 调整 .jpg 图像的大小。函数返回奇怪的结果(见下图)。我不确定这是错误还是只是错误地使用了该功能。 import numpy
我正在尝试加载灰度图像,如下所示: from skimage import data from skimage.viewer import ImageViewer img = data.imread(
涉及到的函数为 ? 1
我在 Python 2.7 中使用 Skimage 包已经有一段时间了。 最近我将 Ubuntu 升级到 14.10,现在无法从 Skimage 包导入滤镜(以前是滤镜)。 Python 2.7.9
我想关闭 skimage UserWarning:我使用了此代码,但它们仍处于启用状态。 with warnings.catch_warnings(): warnings.simplefilt
我的图像看起来像这样,有一些较大的杂质/曝光过度的 Blob 。通常,它们是否被检测到并不重要,因为测量是时间解析的,因此它们稍后会被删除。 但是,我对尽可能多的小点感兴趣 - 尽可能快。 skima
考虑以下代码 import numpy as np from skimage import measure def mse(x, y): return np.mean(np.square(x
使用skimage rotate函数我注意到它有一个可选的插值(顺序)参数但我不明白为什么。 文档没有说明它是如何使用的,我认为旋转图像以简单的索引移位结束。 这是一张图片,使用双线插值和神经网络插值
我正在尝试将多个 RGB 图像转换为灰度图像。然而,我失去了一个维度 # img is an array of 10 images of 32x32 dimensions in RGB from sk
在skimage的模块_denoise.py中我发现了以下代码: def estimate_sigma(image, average_sigmas=False, multichannel=False)
我正在使用 skimage 旋转、缩放和平移图像。返回的图像使用原始图像形状,从而裁剪原始图像。如何返回包含整个原始图像的图像? from skimage import data from skima
我想获得通过在图像中剪切多边形而得到的子图像。 我在 skimage 中有一个图像,在 matplotlib.patches 中有一个多边形。 怎么做? 下面是我试过的。我不一定在寻找类似于下面的方法
我正在使用 skimage 切片聚类算法来分割生物医学图像(整个幻灯片图像)。当我用段边界绘制图像时,我发现边界没有明确定义。下面是我的代码和相应的图片。当我使用更高分辨率的图像时,我仍然遇到同样的问
我是一名优秀的程序员,十分优秀!