#。Aは、画像データ読み取り インポート CV2 IMG = cv2.imread(" :/image0.JPG D ") #画像データ読み出し 印刷(IMG) cv2.imshow(' イメージ'、IMG) #1 表示ウィンドウデータ cv2.waitKeyを(0) #の遅延待ち cv2.destroyAllWindows()
プリント(IMG)チャネルの#印刷画素値
三つの要素のグループによって表される各画素と各整数(整数)ベクターにおいて:示した結果から
B、G、Rチャンネルを表します。他の色空間(例えば、HSV)も同様にピクセルを表現する方法であるが、異なる範囲及びチャネルの数
(例えば、HSV)
印刷(img.shape)#印刷パス
画像処理を読みます
cv2.IMREAD_COLOR:カラー画像
cv2.IMREAD_GRAYSCALE:グレースケール画像
画像処理グラデーション
インポート CV AS CV2 インポートNP AS numpyの IMG1 = cv.imread(" :/image0.JPG D "、cv.IMREAD_GRAYSCALE)# を読み取った画像データ、グレー 印刷(IMG1) 印刷(img1.shape) cv.imshow(' 画像'、IMG1) #1 表示ウィンドウデータ cv.waitKey(0) #の遅延待ち cv.destroyAllWindows()
コントラストと色のイメージが発生することができます
第二に、データの読み出し - ビデオ
cv2.VideoCaptureは、0,1等の各種デジタル機器を制御するために、カメラをキャプチャすることができます。
それは良いのパスを指定するには、直接ビデオファイルである場合。
輸入 CV2
cv2.VideoCapture = VC(0) #はカメラを開く IF vc.isOpened(): #カメラの状態分析 を開き、フレーム= vc.read() 他: オープン = Falseの 間オープン: RET、フレーム = vc.read() #のフレームフレームレート のIFフレームはありませんなし: BREAK IF RET == 真: 灰色 = cv2.cvtColor(フレーム、cv2.COLOR_BGR2GRAY) #のグレーのハンドル cv2.imshow(" 結果" 、グレー)
もしcv2.waitKey(10)&0xFFで== 27:
ブレークvc.release()
cv2.destroyAllWindows()
そして、モードが灰色に設定されているカメラを読みます
カット画像
インポートCV2 IMG = cv2.imread(" D:/image0.JPG " ) の花 = IMG [0:200,0:200である] #の切り出し画像 cv2.imshow(' イメージ'、花) #1 表示ウィンドウデータ cv2.waitKey (0) #の遅延待ち cv2.destroyAllWindows()
唯一のチャネルrを保持するカラーチャネルを抽出します
インポートCV2 IMG = cv2.imread(" D:/image0.JPG " ) B、G、R&LT = cv2.split(IMG) プリント(B) #維持Bのみ生じる cur_img = img.copy() cur_imgの[:、: 、0] = 0 cur_img [:、:、 1] = 0 cv2.imshow(' イメージ'、cur_img) #1 表示ウィンドウデータ cv2.waitKey(0) #の遅延待ち cv2.destroyAllWindows()
唯一のチャネルGを保持する抽出色チャネル
import cv2 img=cv2.imread("d:/image0.JPG") b,g,r=cv2.split(img) print(b) #只保留b结果 cur_img=img.copy() cur_img[:,:,0]=0 cur_img[:,:,2]=0 cv2.imshow('image',cur_img) #显示窗口数据 cv2.waitKey(0) #等待延迟 cv2.destroyAllWindows()
颜色通道地提取只保留b通道
import cv2 img=cv2.imread("d:/image0.JPG") b,g,r=cv2.split(img) print(b) #只保留b结果 cur_img=img.copy() cur_img[:,:,1]=0 cur_img[:,:,2]=0 cv2.imshow('image',cur_img) #显示窗口数据 cv2.waitKey(0) #等待延迟 cv2.destroyAllWindows()
边界填充
BORDER_REPLICATE:复制法,也就是复制最边缘像素。
BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb
BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称,gfedcb|abcdefgh|gfedcba
BORDER_WRAP:外包装法cdefgh|abcdefgh|abcdefg
BORDER_CONSTANT:常量法,常数值填充。
import cv2 import matplotlib.pyplot as plt img=cv2.imread("d:/cat.JPG") top_size,bottom_size,left_size,right_size = (50,50,50,50) replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE) reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_REFLECT) reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101) wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP) constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_CONSTANT, value=0) plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL') plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE') plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT') plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('REFLECT_101') plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP') plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('CONSTANT') plt.show()
数值计算
import cv2 img=cv2.imread("d:/image0.JPG") img_flower=img+10 #所有通道数值+10 print(img[:5,:,0]) print(".........................") print(img_flower[:5,:,0])
当数值超过256时会以%256地形式展示通道数据
print(".........................")
print((img_flower+img)[:5,:,0])