NO.1 カメラ起動＋BGR取得

#ルービックキューブの色を取得していきます
複数の記事になります。　
ルービックキューブの色を取得して　[kociemba](https://github.com/muodov/kociemba)を利用して
最後は回転記号を取得します。

[NO.2 画面に取得したBGRを表示](https://qiita.com/otoboke162/items/4a4aa661f47f5a1a13b2)
[NO.3取得したいろが　何色なのか　区別する](https://qiita.com/otoboke162/items/c4130653bec267e7e11c)
[NO.4ルービックキューブの回転記号をえる](https://qiita.com/otoboke162/items/47e147aee8782069bd34)
[NO.５　最終コード　参考程度に,,,,]
(https://qiita.com/otoboke162/private/c8b5417cb8a8c5af12f8)


#カメラ起動
<font color="Red">cv2.VideoCapture(0)</font>


( )の中身の数字を変えて　起動するカメラを指定する。
0が　スタート　複数カメラ接続がある場合　１，２など試す。



<br>
<font color="Red">if cv2.waitKey(1) & 0xFF == ord('q'):</font>


キーボードのQボタンで　　ブレイク　終了します。
（ウィンドウが閉じる）
<br>

#####サンプルコード（カメラ）
```python
import cv2

capture = cv2.VideoCapture(2)

while True:
    ret, frame = capture.read()


    cv2.imshow('camra',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()
```


<br>
<br>

#####サンプルコード（カメラ）を実行
![サンプル１.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126388/c6c9d042-2385-5972-e4f5-c8bb7dc3e3ac.png)
ウィンドウをクリックして　'Q'ボタンを押せば終了できます。
＊右上の　＿　□　ｘ　ボタンは使えません


***
<br>
<br>
<br>
<br>
<br>

# 四角い枠で囲む
opencv  
cv2.rectangleを使用して　四角い枠を表示する

<br>

左上が(X0, Y0)　
<font color="blue">左右が　X方向:</font>
<font color="red">上下が　Y方向:</font>
![サンプル１-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126388/e53fe187-74dc-da0e-503e-5c60c071f322.png)


<br>
<br>

#####サンプルコード（四角い枠を表示）

```python

import cv2

capture = cv2.VideoCapture(2)
#capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) # 横幅
#capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) # 縦幅

x_s = 100
y_s = 100
x_e = 400
y_e = 400
#Y縦　X横

while True:
    ret, frame = capture.read()

    colorBGR = cv2.rectangle(frame, 
　　　　　　　　　(x_s, y_s), (x_e, y_e), (255, 255, 255), 2)


    cv2.imshow('camra',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()
```
```
#追加したコード
    colorBGR = cv2.rectangle(frame, 
　　　　　　　　　(x_s, y_s), (x_e, y_e), (255, 255, 255), 2)
```



<br>
<br>
***
今回は使っていませんが　自分で　
ウィンドウの大きさを指定してあげることができる


```
#capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) # 横幅
#capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 730) # 縦幅
```
<br>

***
<font color="Red">ret, frame = capture.read()</font>
この frameを使う

```
-----------コーーーーード----------------------
#Y縦軸　X横軸
x_s = 100
y_s = 100
x_e = 400
y_e = 400

colorBGR = cv2.rectangle(frame, (x_s, y_s), (x_e, y_e), (255, 255, 255), 2)
-------------------------------------------------

------以下説明-------


”””
cv2.rectangleは四角を表示する


(frame  最初のフレームは　上の赤文字のやつ

(x_s, y_s)　開始地点を指定します
(x_e, y_e)  終了地点を指定します

(255, 255, 255)　B,G,Rの順番で指定する　今回は白色
(0, 0, 255) なら　赤色


, 2)　最後の　２は　線の太さ　０にした場合　線ではなく　指定した範囲
全部塗りつぶします　
０の場合 ■　このように　真っ白になる
”””

＃x_s, y_s　スタートの　ｓ
＃x_e, y_s　エンドの　e
```

<br>
<br>
<br>

#####サンプルコード（四角い枠を表示）を実行
下の白い線が　したのコードで表示される

```
colorBGR = cv2.rectangle(frame, (x_s, y_s), (x_e, y_e), (255, 255, 255), 2)
```

![サンプル２-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126388/65c1f0ba-c540-ae38-8336-5cf1945e7821.png)


このように　範囲を指定してあげればいいじゃん。


<br>
<br>
<br>
<br>

#指定したところのBGRを取得

####サンプルコード(BGR取得）

```python
import cv2

capture = cv2.VideoCapture(2)

x_s = 280
y_s = 280
x_e = 320
y_e = 320
#Y縦　X横

while True:
    ret, frame = capture.read()

    colorBGR = cv2.rectangle(frame, (x_s, y_s), (x_e, y_e), (255, 255, 255), 2)
    pixel = frame[300, 300]
    print(pixel)

    cv2.imshow('camra',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()
```


```
#追加したコード
    pixel = frame[300, 300]
    print(pixel)
```
frame[Y, X]で指定すれば　その座標のBGRを取得することができる

今回は fram[３００，３００]

四角い枠は　２８０～３２０でかこんでおり

その　中心　３００の座標を取得しているので　四角い枠の中心部分の
BGRを取得している。


<br>
<br>
####サンプルコード(BGR取得）の実行
![サンプル３.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1126388/96903945-62c2-21a9-d1b9-e47e9c4d59a6.png)
取得したBGRを　リアルタイムで　ターミナルに表示しています

先の話、、、この枠を　９個用意してしまえば
ルービックキューブ色を９個取得できる。
***
#####参考サイト
[カメラ起動方法](https://qiita.com/opto-line/items/7ade854c26a50a485159)
カメラの起動や台数が確認できます。
[opencvの座標](https://biotech-lab.org/articles/872)
ｘ、ｙどっちが横軸、縦軸？？　まよったらここで　
***
<br>

#ちょっと　おまけ

[カメラ接続確認](https://www.desknets.com/neo/webmtg/devicecheck/)
接続されてる　カメラが不明な場合ここで確認できる　（マイク・スピーカも可能）
***

Mac Bookで起動すると　エラーがでる可能性ある。
パソコン側がカメラの使用拒否をしてるかもしれない。
カメラの使用許可をする必要がありる

パソコン側で設定はできない（はず）



```
abort trap6:  PYthonが、、、、終了しました。
```

もし　このエラーがでたら
[こちらへどうぞ](https://qiita.com/7110/items/80295b0f6661da429e73)

ターミナルから　VS CODEを起動するとMAC　からカメラの許可を　聞いてくるはず
（自分はそうでした、ほかの方はしりません)


***
##次回取得した色を　画面左上に表示させます

[NO.2 画面に取得したBGRを表示](https://qiita.com/otoboke162/items/4a4aa661f47f5a1a13b2)