画像にフィルターをかける

キャプチャ画像にフィルターをかける #

キャプチャ画像にフィルターをかけることで、判定処理をより正確に行うことができる場合があります。

使用方法 #

表のFilter列に使用したいフィルターを入力します。

入力方法 #

フィルターとパラメーターを”,“でつなぎ、フィルター毎に”{}“で囲んでください。
※★マークがついたフィルターはグレースケール化が必要です。{Grayscale}を追加してください。
例:{Grayscale}{Canny,50,110}

{Grayscale} #

映像をグレースケール化する。

{CvtColor,n1} #

映像の色空間を変更する。

  • n1: ColorConversionCodes (40: toHSV 44: toLab 50: toLuv 52: toHLS 54: HSVtoBGR 56:LabtoBGR 58: LuvtoBGR 60: HLStoBGR)

★{Canny,n1,n2} #

{Canny,50,110}
映像のエッジ検出を行う。

  • n1: threshold1 (0 ~ )
     他エッジとの隣接部分(エッジになりやすい部分)におけるエッジかどうかの判断のゆるい閾値
  • n2: threshold2 (0 ~ )
     エッジかどうかの判断の閾値そのもの
    参考:https://qiita.com/Takarasawa_/items/1556bf8e0513dca34a19

★{Laplacian,n1,n2,n3} #

{Laplacian,3,2,0}
映像のエッジ検出を行う。

  • n1: KernelSize (1 ~ 31)
     フィルターの幅 ※奇数
  • n2: Scale (1 ~ )
     求められたラプラシアンに対するスケールファクター
  • n3: Delta (0 ~ )
     結果に足されるオプション値 参考:http://nobotta.dazoo.ne.jp/blog/?p=488

★{Threshold,n1,n2,n3} #

{Threshold,127,255,0}
映像を二値化する。

  • n1: Thresh (0 ~ 255)
     しきい値。
  • n2: Maxval (0 ~ 255)
     二値化後の輝度値。
  • n3: ThresholdTypes (0: Binary 1: BinaryInv 2: Trunc 4: ToZeroInv 8: Otsu 16: Triangle)
     ※ThresholdTypesを8にする場合、Threshを0にするとしきい値が自動で計算されます。

★{AdaptiveThreshold,n1,n2,n3,n4,n5} #

{AdaptiveThreshold,255,1,0,9,12}
映像を適応的二値化する。

  • n1: Maxval (0 ~ 255)
     二値化後の輝度値。
  • n2: AdaptiveThresholdTypes (0: MeanC 1: GaussianC)
     適応的しきい値処理で使用するアルゴリズム。
  • n3: ThresholdTypes (0: Binary 1: BinaryInv 2: Trunc 4: ToZeroInv 8: Otsu 16: Triangle)
     しきい値処理で使用するアルゴリズム。
  • n4: BlockSize (1 ~ )
     近傍サイズ。 ※奇数
  • n5: c (0 ~ )
     計算結果から減算する定数 参考:https://schima.hatenablog.com/entry/2013/10/19/085019

★{Sauvola,n1,n2,n3} #

{Sauvola,7,0.15,32}
映像をSauvola方式で二値化する(適応的二値化の1つ)。

  • n1: KernelSize (1 ~ )
     フィルターの幅 ※奇数 
  • n2: k (x.x ~ )
  • n3: r ( ~ )

★{Nick,n1,n2} #

{Nick,7,-0.1}
映像をNick方式で二値化する(適応的二値化の1つ)。

  • n1: KernelSize (1 ~ )
     フィルターの幅 ※奇数 
  • n2: k (-0.2 ~ -0.1)

{BitwiseNot} #

映像をネガポジ反転する。

{Separation,n1} #

映像からR/G/Bを分離する。※グレースケール化されます。

  • n1: Color (0: B 1: G 2: R)

{InRange,n1,n2,n3,n4,n5,n6} Color #

{InRange,n1,n2} Grayscale #

指定範囲内の色を抽出し、二値画像とする。 [Color]

  • n1,n2,n3: lowerb (0 ~ 255)
     それぞれB、G、Rの下限
  • n4,n5,n6: upperb (0 ~ 255)
     それぞれB、G、Rの上限 [Grayscale]
  • n1: lowerb (0 ~ 255)
     輝度値の下限
  • n2: upperb (0 ~ 255)
     輝度値の上限

{Blur,n1,n2} #

{Blur,5,5}
映像を平滑化する。平均値ぼかし

  • n1,n2: Kernel size (1 ~ )
     フィルターの幅 ※奇数
    参考:https://shikaku-mafia.com/opencv-smoothing/

{GaussianBlur,n1,n2,n3} #

{GaussianBlur,5,5,0}
映像を平滑化する。

  • n1: Kernel size (1 ~ )
     x方向のKernel size ※奇数
  • n2: Kernel size (1 ~ )
     y方向のKernel size ※奇数
  • n3: SigmaX (0 ~ )
     Kernelの標準偏差 ※SigmaY = SigmaX ※0を指定するとKernel sizeから自動的に計算される。

{MedianBlur,n1} #

{MedianBlur,5}
映像を平滑化する。中央値ぼかし

  • n1: Kernel size (1 ~ )
     フィルターの幅 ※奇数

{BilateralFilter,n1,n2,n3} #

{BilateralFilter,5,50,20}
映像をエッジを残したまま平滑化する。

  • n1: d (0 ~ )
     各ピクセル近傍の直径(0のとき自動計算)。大きいほどぼかしが強くなる。
  • n2: sigmaColor (0 ~ )
     色空間の標準偏差
  • n3: sigmaSpace (0 ~ )
     座標空間の標準偏差。
    参考:https://negizoku.hatenablog.jp/entry/2020/09/20/225354

{Erode,n1} #

収縮フィルター

  • n1: Iterations (1 ~ )
     フィルターをかける回数

{Dilate,n1} #

膨張フィルター

  • n1: Iterations (1 ~ )
     フィルターをかける回数

{MorphologyEx,n1,n2} #

さまざまなモルフォロジー処理(形、輪郭を基準とした処理)