久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

計算圖像中的單元格數

Count number of cells in the image(計算圖像中的單元格數)
本文介紹了計算圖像中的單元格數的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我需要計算圖像中細胞數量的代碼,并且只計算粉紅色的細胞.我使用了閾值法和分水嶺法.

I need code for counting the number of cells in the image and only the cells that are in pink color should be counted .I have used thresholding and watershed method.

import cv2
from skimage.feature import peak_local_max
from skimage.morphology import watershed
from scipy import ndimage
import numpy as np
import imutils

image = cv2.imread("cellorigin.jpg")

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255,
    cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
cv2.imshow("Thresh", thresh)


D = ndimage.distance_transform_edt(thresh)
localMax = peak_local_max(D, indices=False, min_distance=20,
    labels=thresh)
cv2.imshow("D image", D)

markers = ndimage.label(localMax, structure=np.ones((3, 3)))[0]
labels = watershed(-D, markers, mask=thresh)
print("[INFO] {} unique segments found".format(len(np.unique(labels)) -     1))

for label in np.unique(labels):
    # if the label is zero, we are examining the 'background'
    # so simply ignore it
    if label == 0:
        continue

    # otherwise, allocate memory for the label region and draw
    # it on the mask
    mask = np.zeros(gray.shape, dtype="uint8")
    mask[labels == label] = 255

    # detect contours in the mask and grab the largest one
    cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL,
        cv2.CHAIN_APPROX_SIMPLE)
    cnts = imutils.grab_contours(cnts)
    c = max(cnts, key=cv2.contourArea)

    # draw a circle enclosing the object
    ((x, y), r) = cv2.minEnclosingCircle(c)
    cv2.circle(image, (int(x), int(y)), int(r), (0, 255, 0), 2)
    cv2.putText(image, "#{}".format(label), (int(x) - 10, int(y)),
        cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2)



cv2.imshow("input",image

cv2.waitKey(0)

我無法正確分割粉色單元格.在某些地方,兩個粉色單元格連接在一起,它們也應該分開.

I am not able to segment the pink cells properly.At some places two pink cells are attached together those also should be separated.

輸出:

推薦答案

由于細胞的可見性似乎與細胞核(深紫色)和背景(淺粉色)不同,因此顏色閾值應該在這里起作用.想法是將圖像轉換為 HSV 格式,然后使用上下顏色閾值來隔離細胞.這將為我們提供一個二進制掩碼,我們可以使用它來計算單元格的數量.

Since the cells seem to be visibility different from the nucleus (dark purple) and the background (light pink), color thresholding should work here. The idea is to convert the image to HSV format then use a lower and upper color threshold to isolate the cells. This will give us a binary mask which we can use to count the number of cells.

我們首先將圖像轉換為 HSV 格式,然后使用較低/較高的顏色閾值來創建二進制蒙版.從這里我們執行形態學操作來平滑圖像并去除少量噪聲.

We begin by converting the image to HSV format then use a lower/upper color threshold to create a binary mask. From here we perform morphological operations to smooth the image and remove small bits of noise.

現在我們有了掩碼,我們使用 cv2.RETR_EXTERNAL 參數查找輪廓,以確保我們只獲取外部輪廓.我們定義了幾個區域閾值來過濾掉細胞

Now that we have the mask, we find contours with the cv2.RETR_EXTERNAL parameter to ensure that we only take the outer contours. We define several area thresholds to filter out the cells

minimum_area = 200
average_cell_area = 650
connected_cell_area = 1000

minimum_area 閾值確保我們不計算單元格的微小部分.由于一些單元格是連接的,一些輪廓可能有多個連接的單元格表示為單個輪廓,因此為了更好地估計單元格,我們定義了一個 average_cell_area 參數來估計單個單元格的面積.connected_cell_area 參數檢測連接的單元格,其中在連接的單元格輪廓上使用 math.ceil() 來估計該輪廓中的單元格數量.為了計算單元格的數量,我們遍歷輪廓并根據它們的面積對輪廓求和.這是檢測到的以綠色突出顯示的單元格

The minimum_area threshold ensures that we do not count tiny sections of a cell. Since some of the cells are connected, some contours may have multiple connected cells represented as a single contour so to estimate the cells better, we define an average_cell_area parameter which estimates the area of a single cell. The connected_cell_area parameter detects connected cells where use math.ceil() on a connected cell contour to estimate the number of cells in that contour. To count the number of cells, we iterate through the contours and sum up the contours based on their area. Here's the detected cells highlighted in green

Cells: 75

代碼

import cv2
import numpy as np
import math

image = cv2.imread("1.jpg")
original = image.copy()
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

hsv_lower = np.array([156,60,0])
hsv_upper = np.array([179,115,255])
mask = cv2.inRange(hsv, hsv_lower, hsv_upper)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3,3))
opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1)
close = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel, iterations=2)

cnts = cv2.findContours(close, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]

minimum_area = 200
average_cell_area = 650
connected_cell_area = 1000
cells = 0
for c in cnts:
    area = cv2.contourArea(c)
    if area > minimum_area:
        cv2.drawContours(original, [c], -1, (36,255,12), 2)
        if area > connected_cell_area:
            cells += math.ceil(area / average_cell_area)
        else:
            cells += 1
print('Cells: {}'.format(cells))
cv2.imshow('close', close)
cv2.imshow('original', original)
cv2.waitKey()

這篇關于計算圖像中的單元格數的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to draw a rectangle around a region of interest in python(如何在python中的感興趣區域周圍繪制一個矩形)
How can I detect and track people using OpenCV?(如何使用 OpenCV 檢測和跟蹤人員?)
How to apply threshold within multiple rectangular bounding boxes in an image?(如何在圖像的多個矩形邊界框中應用閾值?)
How can I download a specific part of Coco Dataset?(如何下載 Coco Dataset 的特定部分?)
Detect image orientation angle based on text direction(根據文本方向檢測圖像方向角度)
Detect centre and angle of rectangles in an image using Opencv(使用 Opencv 檢測圖像中矩形的中心和角度)
主站蜘蛛池模板: 自拍第一页| 久久国产亚洲 | 亚洲福利在线观看 | 日本激情视频在线播放 | 中文字幕在线观看成人 | 日韩免费1区二区电影 | 看亚洲a级一级毛片 | 欧洲精品在线观看 | 国产精品国产亚洲精品看不卡15 | 国产一区二区电影 | 日本成人中文字幕在线观看 | 精品自拍视频在线观看 | 999久久| 麻豆亚洲| 日本a∨视频| 久久精品91久久久久久再现 | 亚洲欧美第一视频 | 天堂在线中文字幕 | 午夜久久av | 乳色吐息在线观看 | 午夜羞羞 | 午夜电影网站 | 久久高清 | 在线免费小视频 | 国产精品人人做人人爽 | 欧美黄视频 | 欧美一区二区在线观看 | 亚洲九九 | 久久99久久 | 欧美福利精品 | 中文字幕国产在线 | 欧美综合精品 | 午夜精品一区二区三区在线播放 | 91一区二区 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 在线91| 2020国产在线 | 午夜精品一区二区三区在线观看 | 久久精品欧美一区二区三区不卡 | 日本中文在线视频 | 成人免费视屏 |