- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我关注了this有关分水岭分割的教程,以分离所附图像上的棕色细胞。一切顺利(单元格由蓝色边界分隔)但现在我想计算这些单元格并确定它们的大小(像素数)以绘制分布函数。你能帮忙怎么做吗?
代码如下。
import numpy as np
import cv2
img = cv2.imread('test watershed.tif')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
# noise removal
kernel = np.ones((3,3),np.uint8)
opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2)
# sure background area
sure_bg = cv2.dilate(opening,kernel,iterations=3)
# Finding sure foreground area
dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5)
ret, sure_fg = cv2.threshold(dist_transform,0.1*dist_transform.max(),255,0)
# Finding unknown region
sure_fg = np.uint8(sure_fg)
unknown = cv2.subtract(sure_bg,sure_fg)
# Marker labelling
ret, markers = cv2.connectedComponents(sure_fg)
# Add one to all labels so that sure background is not 0, but 1
markers = markers+1
# Now, mark the region of unknown with zero
markers[unknown==255] = 0
markers = cv2.watershed(img,markers)
img[markers == -1] = [255,0,0]
**UPDATE**
#thresholding a color image, here keeping only the blue in the image
th=cv2.inRange(img,(255,0,0),(255,0,0)).astype(np.uint8)
#inverting the image so components become 255 seperated by 0 borders.
th=cv2.bitwise_not(th)
#calling connectedComponentswithStats to get the size of each component
nb_comp,output,sizes,centroids=cv2.connectedComponentsWithStats(th,connectivity=4)
#taking away the background
nb_comp-=1; sizes=sizes[0:,-1]; centroids=centroids[1:,:]
bins = list(range(np.amax(sizes)))
#plot distribution of your cell sizes.
numbers = sorted(sizes)
plt.hist(sizes,numbers)
cv2.imwrite("test watershed result",img)
最佳答案
您完成了最困难的部分!现在只需对结果设置阈值(按颜色)并调用方便的 connectedComponentsWithStats
#thresholding a color image, here keeping only the blue in the image
th=cv2.inRange(img,(255,0,0),(255,0,0)).astype(np.uint8)
#inverting the image so components become 255 seperated by 0 borders.
th=cv2.bitwise_not(th)
#calling connectedComponentswithStats to get the size of each component
nb_comp,output,sizes,centroids=cv2.connectedComponentsWithStats(th,connectivity=4)
#taking away the background
nb_comp-=1; sizes=sizes[1:,-1]; centroids=centroids[1:,:]
#plot distribution of your cell sizes (using matplotlib.pyplot as plt)
plt.hist(sizes)
关于python - 分水岭分割后的细胞计数——openCV/Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228136/
我想知道是否有任何方法可以将单元格“提供”给 Google 电子表格中的某人?我有一个电子表格,任何人都可以编写他们想要的内容,任何人都可以编辑他们想要的内容。我想添加一个功能,使得只有单元格的“作者
我如何根据一个输入的最大长度设置单元格的自动调整大小。 using (rng = workSheet.Cells["A1:G1"]) { rng.Style.Font.Bold = true;
如果我想在 Objective-C 中创建一个 TableView ,每个单元格都以不同的方式定制,我会创建多个原型(prototype)单元格,对其进行定制,然后为每个单元格设置自己的标识符。然后我
我正在使用平板电脑 View 并且我的表格 View 是分组的。我使用单个原型(prototype)单元格。在我的单元格中,我使用 UIView 并且只想将第一个单元格 View 设置为顶部,最后一个
如何让特定的 TD 不继承表格的 CSS 样式? 我应该如何使最右边的列完全没有任何背景? table { font-family:Arial, Helvetica, sans-serif;
我目前正在开发一个小项目 (Python 3.6.2),用于根据我从大学网站上抓取的输入自动创建时间表。为了创建时间表和存储约会(以及稍后重新组织它们,以找到“更好”的时间表),我目前使用 Panda
我想使用 python 数组模拟基本的细胞 split 。我有 u,它是一个数组,定义如下: n=2 #number of elements that can describe each cell N
渲染 Markdown 单元格时,在 latex 部分之后会显示垂直条。有什么办法可以去掉这些吗? 例如,markdown 单元格中的以下代码: $\left[ \begin{array}{cccc}
我正在使用 Yosys综合我的 RTL 设计,其中包括几个文字常量,例如绑定(bind)输出端口,如下代码所示: module my_module ( input a, input b
如何在 igGrid 更新中的 igTextEditor 上使用正则表达式? 我尝试使用验证选项,但它没有用。 $("#schedulerTable").igGrid({
我的问题是关于如何构建 LSTM 层,例如在 keras 中: keras.layers.LSTM(units,... other options) 这些单位是单个细胞还是细胞状态的维度? 我读过有关
我寻找将 selectedInputs 放入 renderDataTable 单元格的解决方案。我找到了 js 解决方案:https://datatables.net/examples/api/for
我是一名优秀的程序员,十分优秀!