OpenCVの旅----- numpyの配列

Nunmpy配列が含まれています。

  • 強力なN次元配列オブジェクト

  • 洗練された(放送)機能

  • 統合されたC / C ++およびFortranコードツール

  • 便利な線形代数、フーリエ変換や乱数機能

すべてのトラバースおよび変更ピクセルアレイ

1つの 全ての画素をループ
2  DEFのaccess_pixels(画像)
 。3      プリント(image.shape)
 。4      高さ= image.shape [0]     高さ
5      幅= image.shape [1]      
。6つの      チャンネルimage.shape = [ 2]    #1 チャネル
7。     印刷" 幅:%S、高さ:%S、チャネル:%S "(幅、高さ、チャネル))
 。8      のための(高さ)範囲:                #1 サイクルは、各ピクセル取得
9          以下のための COL 範囲(幅):
 10              用の C 範囲(チャンネル):
 11                  PV =画像[行、列、C]         维度
12                  画像[行、列、C] = 255 - PV
 13      cv.imshow(" pixels_demo "、画像)

新しい画像を作成します。

新しいイメージを作成します。

1 np.zeros([400、400 ,. 3]、np.uint8)        形状、種類、

コード:

1つの アレイの寸法の指定された数によって割り当てnumpyの
2  DEFのcreate_image():
 3      '' ' 
4      #(新しい3チャネル画像を作成する)
 5      RGBに共通#マルチチャンネル
 6。     #np.zeros IMG =([400 、400 ,. 3]、np.uint8)
 。7      #1 IMGの[し:、:、0] = np.ones([400、400])* 255#0は、第一通路ブルーを示し、図1は、第二のチャネル緑を示し、図3は表し第3通路読む
 8。 
9。  共通の単一チャンネルのグレースケール画像
 10      #np.zeros IMG =([400、400 ,. 1]、np.uint8)#新しいイメージ作成
 11。  のIMGの[し:、:、0] = np.ones([400、400])* 127
 12である     IMGのnp.ones =([400、400 ,. 1]、np.uint8)
 13である     IMG IMG * 127 =
 14      cv.imshow( "新しい新しいイメージ"、IMG)#ウィンドウ
 15     cv.imwrite( "C:/Users/shinelon/Desktop/DL/001.png") #画像保存
 16      ' '' 
17。 
18である     #は二次元、印刷画素を初期化する
19。      M1 = np.ones([3 ,. 3。]、np.float32)
 20は      m1.fill(222.388 21は、     プリント(M1)
 22は 
23である      M2 = m1.reshape([1,9])      は、空間におけるその形状が変化する
24      プリント(M2)

 

 その他の知識

現在のCPUクロックを取得します。

1 T1 = cv.getTickCount()                  現在のCPU時間を取得します。

 完全なコード

1  インポートCV AS CV2
 2  インポートNP AS numpyの
 3。 
4。 
5。  全ての画素をループ、遅い解釈
6。 DEF access_pixels(イメージ):
 7。     印刷(image.shape)
 8。      高さ= image.shape [0]     高さ
9      幅= image.shapeの[1]      
10      チャネル= image.shape [2]    #1 チャネル
11      プリント" 幅:%S、高さ:%S、チャネル:%S "(幅、高さ、チャネル) )
 12      のための範囲(高さ):                #1 周期は、各画素ゲット
13である         ため COL における範囲(幅):
 14              用の C 範囲(チャンネル):
 15                  PV =イメージ[ロウ、COL、C]         寸法
16                  イメージ[ロウ、COL、 C] = 255 - PV
 。17      cv.imshow(" pixels_demo " 、画像)
 18である 
19。 
20である DEFの逆数(イメージ):
 21である      (画像)DEST = cv.bitwise_not     #1 画素がコードCに依存する、否定
22で      cv.imshow(" "、DEST)
 23は、 
24  
25  numpyのにより配列の指定された次元に割り当て
26である DEFの:)(create_image
 27      '' ' 
28      #(新しい3チャネル画像を作成する)
 29      RGBに共通#マルチチャンネル
 30      #IMG = NP .zeros([400、400 ,. 3]、np.uint8)
 31である     。#IMG [:、:、0] = np.ones([400、400])* 255#0は、第一通路ブルーを示し、1秒を表しますチャネル・グリーン3は、Read第3通路を示している
 32  
33である     共通の単一チャネルグレー画像#
 34は、     新たな画像#作成するIMG =([400、400 ,. 1]、np.uint8)np.zeros#
 35      #IMGの[します: :0] = np.ones([400、400])* 127
 36      IMGのnp.ones =([400、400 ,. 1]、np.uint8)
 37      * 127 = IMG IMG
 38であります     cv.imshow( "新画像"、IMG )# ウィンドウ
 39      cv.imwrite( "C:/Users/shinelon/Desktop/DL/001.png")画像#保存する
 40      '' ' 
41は 
42である     。#二次元の初期化印刷画素
43は、      M1 = np.ones([3 ,. 3 ]、np.float32)
 44である      m1.fill(222.388 45      プリント(M1)
 46が 
47      M2 = m1.reshape([1,9])      変化空間の形状
48      プリント(M2)
 49  
50      M3 = np.array([[2 ,. 3 ,. 4]、[4 ,. 5 ,. 6]、[7 ,. 8 ,. 9]、np.int32)       #1 コンボリューション神経回路が必要となる
51は     #1 m3.fill(9)
52で     印刷(M3)
53は 
れる54  
55  プリント" ------ ----- PythonのOpenCVのチュートリアル" 56は、SRC = cv.imread(" :/Users/shinelon/Desktop/DL/12.png C "#1 ブラケットクラス絶対画像パス
57 cv.namedWindow(" 入力画像" 、cv.WINDOW_AUTOSIZE)
 58 cv.imshow(" 入力画像"、SRC)            絵は、Windowsのウィンドウを示して
59 T1 = cv.getTickCount()                  、現在のCPU時間を取得
60  create_image()
 61は、 #1 access_pixels(SRC)#長い時間
62は、逆(SRC)            最適化、短い
63さ T2 = cv.getTickCount()
 64 /cv.getTickFrequency() -時間=(T1、T2)      実行時間MS 
65  印刷" :%S MS時間"%( * 1000年時))
 66  cv.waitKey(0)
 67  
68  
69 cv.destroyAllWindows()

 

 

おすすめ

転載: www.cnblogs.com/gghy/p/11761949.html
おすすめ