[youcansの200のOpenCVルーチン]159。画像処理の固定しきい値方式

「youcans'OpenCVルーチン200」シリーズへようこそ。継続的に更新される「youcans'OpenCV学習コース」シリーズに
注目して、引き続き更新してください。


[youcansの200のOpenCVルーチン]159。画像処理の固定しきい値方式


3.2グローバルしきい値処理の基本的な方法

画像内のターゲットと背景のグレースケール分布が明らかな場合、固定しきい値を使用して、画像全体に対してグローバルしきい値を実行できます。

適切なグローバルしきい値を取得するために、グレースケールヒストグラムに基づいて反復計算を実行できます。

(1)初期しきい値Tを設定します。これは通常、画像の平均グレーレベルとして設定できます;
(2)グレーしきい値Tで画像をセグメント化します:すべてのピクセルは、Tとすべてのピクセルに等しいグレー値を持つG1を設定しますG2をT以上に設定します;
(3)G1とG2のそれぞれの平均グレースケール値m1とm2を
計算します;(4)新しいグレースケールしきい値T =(m 1 + m 2)/ 2 T =( m1 + m2)/ 2T=m 1+m 2 / 2 ;
(5)しきい値の変化が設定値より小さくなるまで、手順(2)から(4)を繰り返します。


ルーチン11.16:画像しきい値の固定しきい値

    # 11.16 图像分割之全局阈值处理
    img = cv2.imread("../images/Fig0940a.tif", flags=0)

    deltaT = 1  # 预定义值
    histCV = cv2.calcHist([img], [0], None, [256], [0, 256])  # 灰度直方图
    grayScale = range(256)  # 灰度级 [0,255]
    totalPixels = img.shape[0] * img.shape[1]  # 像素总数
    totalGary = np.dot(histCV[:,0], grayScale)  # 内积, 总和灰度值
    T = round(totalGary/totalPixels)  # 平均灰度

    while True:
        numC1, sumC1 = 0, 0
        for i in range(T): # 计算 C1: (0,T) 平均灰度
            numC1 += histCV[i,0]  # C1 像素数量
            sumC1 += histCV[i,0] * i  # C1 灰度值总和
        numC2, sumC2 = (totalPixels-numC1), (totalGary-sumC1)  # C2 像素数量, 灰度值总和
        T1 = round(sumC1/numC1)  # C1 平均灰度
        T2 = round(sumC2/numC2)  # C2 平均灰度
        Tnew = round((T1+T2)/2)  # 计算新的阈值
        print("T={}, m1={}, m2={}, Tnew={}".format(T, T1, T2, Tnew))
        if abs(T-Tnew) < deltaT:  # 等价于 T==Tnew
            break
        else:
            T = Tnew

    # 阈值处理
    ret, imgBin = cv2.threshold(img, T, 255, cv2.THRESH_BINARY)  # 阈值分割, thresh=T

    plt.figure(figsize=(11, 4))
    plt.subplot(131), plt.axis('off'), plt.title("original"), plt.imshow(img, 'gray')
    plt.subplot(132, yticks=[]), plt.title("Gray Hist")  # 直方图
    histNP, bins = np.histogram(img.flatten(), bins=255, range=[0, 255], density=True)
    plt.bar(bins[:-1], histNP[:])
    plt.subplot(133), plt.title("threshold={}".format(T)), plt.axis('off')
    plt.imshow(imgBin, 'gray')
    plt.tight_layout()
    plt.show()

ここに画像の説明を挿入


(このセクションの終わり)


著作権表示:

Youcans @ xuptのオリジナル作品、再版にはオリジナルのリンクを付ける必要があります:(https://blog.csdn.net/youcans/article/details/124281128)

Copyright 2022 youcans、XUPT
Crated:2022-4-20


「youcans'OpenCVルーチン200」シリーズへようこそ。継続的に更新される「youcans'OpenCV学習コース」シリーズに
注目して、引き続き更新してください。

[YoucansのOpenCVルーチン200]01.画像の読み取り(cv2.imread)
[youcansのOpenCVルーチン200] 02.画像の保存(cv2.imwrite)
[youcansのOpenCVルーチン200] 03.画像の表示(cv2.imshow)
[youcansのOpenCVルーチン200] 04. matplotlib(plt.imshow)
[youcansのOpenCVルーチン200] 05.画像属性(np.shape)
[youcansの200OpenCVルーチン]06。ピクセル編集(img.itemset)
[youcansのOpenCVルーチン200] 07.画像の作成(np.zeros)
[youcansのOpenCVルーチン200] 08.画像の複製(np.copy)
[YoucansのOpenCVルーチン200] 09.画像のトリミング(cv2.selectROI)
[youcansのOpenCVルーチン200] 10.画像のステッチ( np.hstack)
[youcansのOpenCVルーチン200] 11.画像チャネルの分割(cv2.split)
[youcansの200OpenCVルーチン]12。画像チャネルのマ​​ージ(cv2.merge) [youcans
の200OpenCVルーチン]13。画像の追加(cv2 .add)
[youcansの200のOpenCVルーチン] 14.画像とスカラーの追加(cv2.add)
[youcansの200のOpenCVルーチン]15。画像の加重加算(cv2.addWeight)
[youcansの200のOpenCVルーチン]16。異なるサイズの画像の追加[youcansの
200のOpenCVルーチン]17。2つの画像勾配切り替え
[youcansのOpenCVルーチン200 ]18.画像マスクの追加
[youcansのOpenCVルーチン200]19.画像円形マスク
[youcansのOpenCVルーチン200]20.画像プレスビット操作
[youcansのOpenCVルーチン200]21.画像オーバーレイ
[youcansのOpenCVルーチン200]22.画像追加非-中国語のテキスト
[youcansのOpenCVルーチン200]23.画像の追加中国語のテキスト
[youcansの200OpenCVルーチン]24。画像のアフィニティ変換
[youcansのOpenCVルーチン200]25.画像の変換
[youcansのOpenCVルーチン200]26.画像の回転(中心原点)
[youcansの200OpenCVルーチン]27。画像の回転(任意の点を中心とする)
[youcansのOpenCVルーチン200] 28.画像の回転(直角回転)
[youcansのOpenCVルーチン200] 29.画像の反転(cv2.flip)
[youcansの200のOpenCVルーチン]30。画像スケーリング(cv2.resize)
[YoucansのOpenCVルーチン200]31.画像ピラミッド(cv2.pyrDown)
[youcansのOpenCVルーチン200] 32.画像の歪み(ミスカット)
[youcansのOpenCVルーチン200]33.画像複合変換
[youcansのOpenCVルーチン200]34.画像投影変換
[youcansのOpenCVルーチン200]35.画像投影変換(境界の塗りつぶし)
[youcansのOpenCVルーチン200]36.カルテシアン座標と極座標変換
[youcansのOpenCVルーチン200]37.画像のグレースケール処理と2値化
[youcansのOpenCVルーチン200]38。画像の逆色変換(画像反転)
[youcansのOpenCVルーチン200記事]39。画像グレースケールの線形変換
[youcansのOpenCVルーチン200記事]40。画像の断片的な線形グレースケール変換
[youcansのOpenCVルーチン200記事]41。画像グレースケール変換(灰色度レベルの階層化)
[youcansのOpenCVルーチン200] 42.画像のグレースケール変換(ビット平面の階層化)
[youcansのOpenCVルーチン200] 43.画像のグレースケール変換(対数変換)
[Youcans200のOpenCVルーチンの記事]44。画像のグレースケール変換(ガンマ変換)
[youcansのOpenCVルーチンの200記事]45。画像のグレースケールヒストグラム
[youcansのOpenCVルーチンの200記事]46。ヒストグラム等化の変更
[YoucansのOpenCVルーチン200記事]47。画像強調-ヒストグラムマッチング
[youcansのOpenCVルーチン200記事]48。画像強調-色ヒストグラムマッチング
[youcansのOpenCVルーチン200記事]49。画像強調-ローカルヒストグラム処理
[youcansのOpenCVルーチン200記事] ]50.画像エンハンスメント-ヒストグラム統計画像エンハンスメント
[youcansのOpenCVルーチン200記事]51。画像エンハンスメント-ヒストグラム逆追跡
[youcansのOpenCVルーチン200記事]]52.画像相関および畳み込み操作
[youcansのOpenCVルーチン200]53.Scipyの実装2次元画像畳み込み
[youcansのOpenCVルーチン200]54.OpenCVは画像2次元畳み込みを実装します
[youcansのOpenCV200ルーチン]55。分離可能な畳み込みカーネル
[youcansのOpenCVルーチン200]56.ローパスボックスフィルター
[youcansのOpenCVルーチン200] 57.ローパスガウスフィルター
[youcansのOpenCV例]Cheng200記事]58。非線形フィルタリング-メディアンフィルタリング
[youcansのOpenCVルーチン200記事]59。非線形フィルタリング-バイラテラルフィルタリング
[youcansのOpenCVルーチン200記事]60。非線形フィルタリング-共同バイラテラルフィルタリング
[OpenCVルーチンの200記事]61。ガイド付きフィルター
[YoucanのOpenCVルーチンの200記事]62。画像の鮮明化-パッシベーションマスキング
[YoucansのOpenCVルーチン200]63.画像の鮮鋭化-ラプラシアン演算子
[youcansのOpenCVルーチン200]64.画像の鮮鋭化-Sobel演算子
[youcansのOpenCVルーチン200]65.画像の鮮鋭化-Scharr演算子
[youcansのOpenCVルーチン200]66.画像フィルタリング低-pass / high-pass / band-stop /band-pass
[youcansのOpenCVルーチン200]67.空間ドメイン画像強調の包括的なアプリケーション
[YoucansのOpenCVルーチン200の記事]68。空間ドメイン画像強調の包括的なアプリケーション
[youcansのOpenCVルーチン200記事]69。連続非周期信号のフーリエ係数
[youcansのOpenCVルーチン200記事]70。[youcansのOpenCVルーチン200]の1次元連続関数フーリエ変換
71.連続関数のサンプリング
[youcansのOpenCVルーチン200]72.One -次元離散フーリエ変換
[youcansのOpenCVルーチン200]73.二次元連続フーリエ変換
[youcansのOpenCVルーチン200]74.画像アンチエイリアシング
[youcansのOpenCVルーチン200]75.Numpyは画像フーリエ変換を実装します
[youcansのOpenCVルーチン200]76 .OpenCVは画像フーリエ変換を実装します
[youcansのOpenCVルーチン200]77.OpenCVは高速フーリエ変換を実装します
[YoucansのOpenCVルーチン200記事]78。周波数領域画像フィルタリングの基本
[youcansのOpenCVルーチン200記事]79。周波数領域画像フィルタリングの基本手順
[youcansのOpenCVルーチン200記事]80。周波数領域画像フィルタリングの詳細手順
[youcansのOpenCVルーチン200]81.周波数領域ガウス低域フィルター
[youcansのOpenCVルーチン200]82.周波数領域バターワース低域フィルター
[youcansのOpenCVルーチン200]83.周波数領域低域フィルタリング:印刷されたテキスト文字の修復
[youcansのOpenCVルーチン200]84.ローパスフィルターからハイパスフィルターを取得する
[youcansのOpenCVルーチン200]85.周波数領域ハイパスフィルターの適用
[youcans200のOpenCVルーチンの記事]86。周波数領域フィルタリングの適用:指紋画像処理
[youcansのOpenCVルーチン200件]87。周波数領域のパッシベーションマスキング[youcansのOpenCVルーチン200
件]88。周波数領域のラプラシアンハイパスフィルタリング
[youcansのOpenCVルーチン200]89.バンドストップの転送機能フィルタ
[youcansのOpenCVルーチン200]90.周波数領域ノッチフィルタ
[youcansのOpenCVルーチン200]91.ガウスノイズ、レイリーノイズ、アイルランドのノイズ
[youcansのOpenCVルーチン200] 92.指数ノイズ、均一ノイズ、ソルトアンドペッパーノイズ
[youcansのOpenCVルーチン200]93.ノイズモデルのヒストグラム
[YoucansのOpenCVルーチン200]94.算術平均フィルター
[YoucansのOpenCVルーチン200]95.幾何平均フィルター
[YoucansのOpenCVルーチン200]96.調和平均フィルター
[YoucansのOpenCV200ルーチン]97。逆調和平均フィルター
[YoucansのOpenCVルーチン200 ]98.統計的ソートフィルター
[youcansのOpenCVルーチン200]99.修正されたアルファ平均フィルター
[youcansのOpenCVルーチン]200記事]100。適応ローカルノイズリダクションフィルター
[youcansのOpenCVルーチン200記事]101。適応メディアンフィルター
[youcansのOpenCVルーチン200記事]102。ノッチバンドストップフィルターの転送機能
[YoucansのOpenCVルーチン200]103.周期的なノイズ干渉を排除するノッチバンドストップフィルター
[youcansのOpenCVルーチン200]104.モーションブラー劣化モデル
[youcansのOpenCVルーチン200] 105.乱流ぼけ劣化モデル
[YoucansのOpenCVルーチン200]106.劣化した画像の逆フィルタリング
[youcansのOpenCVルーチン200]107.劣化した画像のWienerフィルタリング
[youcansのOpenCVルーチン200]108.制約付き最小二乗フィルタリング
[ 200YoucansのOpenCVルーチン]109.幾何平均フィルタリング
[YoucansのOpenCVルーチン200記事]110。投影と雷電変換
[youcansのOpenCVルーチン200記事]111。雷電変換逆投影再構成画像
[youcansのOpenCVルーチン200記事]112。フィルター処理された逆投影再構成画像
[youcansによる200OpenCVルーチン]113.形態学的操作の腐食
[youcansによる200のOpenCVルーチン]114
。形態学的操作の拡張[youcansによる200のOpenCVルーチン]115。形態学的操作のオープン操作
[YoucansのOpenCVルーチン200の記事]116。形態学的操作のクローズド操作
[ youcansのOpenCVルーチン200記事]117。形態学的操作のトップハット操作
[youcansのOpenCVルーチン200記事]118。形態学的操作の下部ハット操作
[youcansのOpenCVルーチン200記事]119。画像の形態学的勾配
[youcansのOpenCVルーチン200記事] ]120.ヒット-ヒット-ミス変換
[youcansのOpenCVルーチン200記事]121。hit-特徴認識に失敗
[youcansのOpenCVルーチン200]122.形態学的アルゴリズムの境界抽出
[youcansのOpenCVルーチン200]123.形態学的な穴埋めアルゴリズム
[youcansのOpenCVルーチン200]124.穴埋めのためのフラッディングアルゴリズム[youcansの200OpenCV
ルーチン]125。形態学的アルゴリズムによる接続されたコンポーネントの抽出
[YoucansのOpenCVルーチン200]126.形態学的アルゴリズム
の凸包[youcansのOpenCVルーチン200]127.形態学的アルゴリズムの改良
[youcansのOpenCVルーチン200]128.形態学的アルゴリズムの骨格(skimage)
[YoucansのOpenCVルーチン200]129。形態学的アルゴリズムの骨格(再構成操作)
[youcansのOpenCVルーチン200]130.水平線と垂直線の形態学的抽出
[youcansのOpenCVルーチン200]131.形態学的再構成の垂直線文字抽出
[youcansのOpenCVルーチン200]132.形態学的再構成穴埋めアルゴリズム
の概要[youcansのOpenCVルーチン200]133.境界クリアの形態学的再構成
[youcansのOpenCVルーチン200]記事]134。形態学的再構成のセルカウント[200YoucansのOpenCVルーチン
]135。形態学的再構成の粒度決定
[200ユーカンのOpenCVルーチン]136。グレイスケール侵食とグレイスケール
拡張[ユーカンのOpenCV例]プログラム200記事]137。グレイスケールオープン操作とグレイスケールクローズ操作の原理
[ユーカンのOpenCVルーチン200記事]138。グレイスケールオープン操作とグレイスケールクローズ操作
[ youcansのOpenCVルーチン200記事]139。影を修正するためのグレイスケールトップハット変換
[youcansのOpenCVルーチン200記事]140。照明を修正するためのグレイスケールボトムハット変換
[YoucansのOpenCVルーチン200]141.グレースケールボトムハット変換の3D地形図
[youcansのOpenCVルーチン200]142.グレースケール形態に基づく画像平滑化
[YoucansのOpenCVルーチン200]143.グレースケール形態に基づく粒子サイズの決定
[YoucansのOpenCVルーチン200 ]144.グレースケール形態に基づくテクスチャセグメンテーション
[youcansのOpenCVルーチン200]145.形態学的エッジおよびコーナー検出
[youcansのOpenCV200ルーチン]146。グレースケール形態に基づく複雑な背景画像再構成[Youcansの
200OpenCVルーチン]147。画像セグメンテーション
[youcansの200OpenCVルーチン]148。画像セグメンテーションのライン検出
[YoucansのOpenCVルーチン200]149.画像セグメンテーションエッジモデル
[youcansのOpenCVルーチン200]150.エッジ検出勾配演算子
[youcansのOpenCVルーチン200]151.スムージングエッジ検出
[YoucansのOpenCVルーチン200記事]152。エッジ検出のLoGオペレーター
[youcansのOpenCVルーチン200記事]153。エッジ検出DoGオペレーター
[youcansのOpenCVルーチン200記事]154。エッジ検出のCannyオペレーター[200OpenCV
ルーチンofyoucans]155.エッジ接続のローカル処理方法
[YoucansのOpenCVルーチン200]156.エッジ接続のローカル処理のための簡略化されたアルゴリズム
[youcansのOpenCVルーチン200]157.ハフ変換ライン検出
[youcansのOpenCVルーチン200]158.しきい値処理方法の固定しきい値[200YoucansのOpenCVルーチン
]159 。画像処理の固定しきい値方式

おすすめ

転載: blog.csdn.net/youcans/article/details/124281128