油絵の画像

原理:

図1は、画像取得階調(グレー)画像
2は、小箱(4×4または8×8または10×10など)、各小画素ブロックの統計値に設計する
いくつかのグレー0-255に分け、3レベル、および結果が設定された各第2段階の処理レベルにマッピングされ、カウント
グレースケールまでの各ブロック内の全ての画素を見つけるために、4を、これらの画素の平均値取得
5を用いて考え出しオリジナルを置き換える画素値の平均値

CV2インポート
NP ASインポートnumpyの

IMG = cv2.imread( 'D:/pythonob/imageinpaint/img/zidan.jpg' ,. 1)
imgInfo img.shape =
高さ= imgInfo [0]
幅= imgInfo [1]
グレー= CV2。 cvtColor(IMG、cv2.COLOR_BGR2GRAY)
DST = np.zeros((高さ、幅,. 3)、np.uint8)
pixel_class。4 =
sectionTop = INT(256 / pixel_class)
各データループの#使用の二つは画像を横断し
Iための範囲(図3に示すように、高さ- 3。。)
の範囲でJ(3、幅- 3):
現在のグレーレベルが4つのプログラムで定義されている
#は4つの段階で負荷にピクセルのアレイを画定します数
ARRAY1 = np.zeros(pixel_class、np.uint8)
小さな正方形の手順現在、6×6で定義されている
範囲内のMために(-3 ,. 3):
N-における範囲(-3 ,. 3):
#P1がさ添字0-3で表される画素レベルのセグメントを分割
INT = P1(グレー[IはMを+、N-J +] / sectionTop)
画素数の#次のレベルは、下付き文字は配列1画素レベルを表し、
#画素値が小さいブロックレベルの画素の代表であります数
ARRAY1 [P1] = ARRAY1 [P1] +。1
#次のブロックが小さい画素セグメント内の最大画素を決定し
CurrentMax =配列1 [0]
ここでL位にL = 0は、記録画素セグメントがカウントアップ提供配列の添字
範囲におけるK用の(0、pixel_class)
:CurrentMax <配列1 [K] IF
CurrentMax配列1 = [K]
L = Kの
#意味治療
U = V = W = 0
の範囲におけるm(-3ため,. 3 ):
N-における範囲(-3 ,. 3):
IFグレー[Iは、Mを+ N-J +]> =(L * sectionTop)とグレー<=((1 + [Iは、n-J +、Mを+] 1)。 *セクション):
(B、G、R)= IMG [iがmを+ J + n]は
、U + = Bの
V + = G
W + = R
U = INT(U /配列1 [L])
V = INT(V /配列1 [L ])
= INT(W /配列1 [L])W
DST [I、J] = [U、V、W]
)cv2.imshow( 'DST'、DST
cv2.imshow( 'IMG'、IMG)
cv2.waitKey (0)

 

図の効果。

 

おすすめ

転載: www.cnblogs.com/cxxBoo/p/11460215.html