fanfuhan OpenCV 教學117 ~ opencv-117-圖像均值漂移分割

fanfuhan OpenCV 教學117 ~ opencv-117-圖像均值漂移分割

fanfuhan OpenCV 教學117 ~ opencv-117-圖像均值漂移分割


資料來源: https://fanfuhan.github.io/

https://fanfuhan.github.io/2019/05/25/opencv-117/

GITHUB:https://github.com/jash-git/fanfuhan_ML_OpenCV


圖像均值漂移分割是一種無監督的圖像分割方法,前面我們在跟踪相關的內容介紹過均值遷移算法,知道均值遷移可以找到圖像中特徵直方圖空間的峰值分佈,這裡我們還是使用均值遷移,讓它去不斷分割找到空間顏色分佈的峰值,然後根據峰值進行相似度合併,解決過度分割問題,得到最終的分割圖像,對於圖像多維度數據顏色值(RGB)與空間位置(x,y),所以需要兩個窗口半徑,一個是空間半徑、另外一個是顏色半徑,經過均值漂移窗口的所有的像素點會具有相同的像素值


C++

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src = imread("D:/images/yuan_test.png");
	imshow("input", src);
	Mat dst;
	TermCriteria tc = TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 10, 0.1);
	pyrMeanShiftFiltering(src, dst, 20, 40, 2, tc);
	imshow("mean shift segementation demo", dst);
	waitKey(0);
	return 0;
}

Python

"""
图像均值漂移分割
"""

import cv2 as cv

src = cv.imread("images/yuan_test.png")
cv.imshow("input", src)
dst = cv.pyrMeanShiftFiltering(src, 25, 40, None, 2)
cv.imshow("result", dst)

cv.waitKey(0)
cv.destroyAllWindows()

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *