watershed

    2熱度

    1回答

    The 2-D watershed example上Mathworks.com 2-d流域例如可以在下面總結: bw = imread('someImage.tif'); D = -bwdist(~bw); D(~bw) = -Inf; L = watershed(D); 我不太明白爲什麼D(~bw) = -Inf;必要在這裏,這迫使那些不屬於對象的像素在-Inf(最初爲零)。 我

    5熱度

    2回答

    的我跟着Mathworks.com的2-D Watershed example以分離連接的對象,像下面的圖片: 的代碼作爲總結: bw = imread('some_binary_image.tif'); D = -bwdist(~bw); D(~bw) = -Inf; L = watershed(D); 結果是: 中心的粒子被分成兩部分。有沒有什麼方法可以避免這種過度分割? 謝謝

    1熱度

    2回答

    我使用OpenCV的流域與我的形象: #include "opencv2/opencv.hpp" #include <string> using namespace cv; using namespace std; class WatershedSegmenter{ private: cv::Mat markers; public: void setMarker

    2熱度

    4回答

    我需要將具有3個通道的CV_8U圖像轉換爲必須是單通道CV_32S的圖像。但是當我試圖這樣做時,我得到的圖像全是黑色的。我不明白爲什麼我的代碼無法正常工作。 我正在處理灰度圖像,這就是爲什麼我將3通道圖像分成單通道圖像的矢量,然後只處理第一個通道。 //markers->Image() returns a valid image, so this is not the problem cv::

    6熱度

    1回答

    我想知道是否有更快的方法,比我下面做了什麼,從分水嶺圖像計算區域鄰接矩陣。 輸入:這些N個區域的鄰接矩陣:從1標記以N. 輸出N個區域分水嶺圖像。 1.對於每個區域,計算相應的掩模,並把所有的掩模到載體中: vector<Mat> masks; for(int i = 0; i < N; i++) { // Create the corresponding mask Mat mask;

    3熱度

    1回答

    我想在java中使用標記實現分水嶺算法,找到一個示例here, 代碼是在C++中,我試圖很難在java代碼中轉換它,但失敗。有沒有人曾經做過?請幫忙! 我堅持使用此功能(cv2.connectedComponents()),因爲在java doc中找不到它。

    3熱度

    2回答

    您好我是圖像分割的新手,我正在嘗試給定的代碼來獲取前景對象,但我得到像「不支持的格式或格式(僅8位,3通道的輸入圖像被支撐)在cvWatershed組合」 cv::Mat img0 = [img toMat]; cv::Mat img1; cv::cvtColor(img0, img0, CV_RGB2GRAY); cv::threshold(img0, img0, 100, 255, cv

    0熱度

    1回答

    我正在爲OpenCV編寫分水嶺代碼。 但我想分水嶺邊界是4點連接,而不是8點。 目前是這樣的接口: void watershed(InputArray image, InputOutputArray markers) 沒有任何人有這方面的任何解決方案? 此外,是否有任何簡單的方法來執行opencv中的形態分水嶺自動過度分割,當前需要用戶輸入?

    5熱度

    1回答

    我無法分離顯微鏡圖像中的細胞。當我應用分水嶺變換時,我最終將細胞切成許多塊,而不僅僅是在邊界/最小值處分離它們。 我使用http://physics.georgetown.edu/matlab/code.html的bpass過濾器。 bp = bpass(image,1,15); op = imopen(bp,strel('ball',10,700)); bw = im2bw(bp-op,gr

    -3熱度

    1回答

    我已經使用Watershed算法分割了我的圖像,結果非常令人滿意。 現在,我想提取並存儲已分割的內容,但我不知道如何去做。 你們有想法嗎? 謝謝。