OpenCVのスーパーピクセル(2). 分割領域を平均化してみる |
您所在的位置:网站首页 › cv2ximgproc › OpenCVのスーパーピクセル(2). 分割領域を平均化してみる |
はじめに
OpenCVのスーパーピクセル(領域分割)画像処理について、前回記事を書きましたが 分割してどうする?のどうするかについての部分を書いていませんでしたので 書きたいと思います。 スーパーピクセルについてスーパーピクセルは領域分割とかセグメンテーションアルゴリズムのことで 領域を分割した上で画像処理をします。 今回は、スーパーピクセルで分割した領域のラベル情報(マスク)を取得し それを表示します。 また、そのラベル情報(マスク)で、分割領域のBGR平均値を取得し、画像に 反映することをやってみようと思います。 1)スーパーピクセルインスタンスの生成まず、スーパーピクセルインスタンス生成し、画像データをインスタンスに入力します。 seeds = cv2.ximgproc.createSuperpixelSEEDS(width, height, channels, num_superpixels, num_levels, prior, num_histogram_bins, double_step) # 画像のスーパーピクセルセグメンテーションを計算 # 入力画像は,HSVまたはL*a*b* converted = cv2.cvtColor(input_image, cv2.COLOR_BGR2HSV) seeds.iterate(converted, num_iterations)入力画像はHSV色空間かまたはL*a*b*色空間を使います。 上記サンプルconverted画像はHSV色空間です。 2)スーパーピクセルセグメンテーションの境界を取得各分割された領域を分ける線を黄色で線引きします。 これは、人にわかりやすくするための処理で、必ずしも必須ではありません。 # スーパーピクセルセグメンテーションの境界を取得 contour_mask = seeds.getLabelContourMask(False) result = input_image.copy() result[0 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |