2019/11/23~24 開発合宿で勉強したこと、成果物

# Jupyter Notebookの使い方
スペルに注意。

ブラウザで立ち上がる　→右上のNew　→Python3　→新しくタブが開く

# Pythonの復習
>https://qiita.com/Fendo181/items/a934e4f94021115efb2e
ここに載っている文を写経

## 扱えるデータ型
- 文字列
  - ""で囲む。
  - 復数の行を表現したい時は"""で囲む
    - この記法を使ってプログラム中に文章を書いても処理には影響を与えないという特徴があるので、結果的にこれらがコメントとして使われているという仕組みだったりします。
  - 特殊文字
  - 改行`\n
  - tab \t``
- 数値
  - 整数
    - i=10
  - 浮動小数
    - v=23.4
- 論理値
  - True(Tは大文字),False(Fは大文字)
- データの演算
  - 基本 : + - * % /
  - 切り捨て除算 ://
  - べき乗 : **

### Pythonのバージョンを確認する
```
python --version
```
結果：Python 3.6.5 :: Anaconda, Inc.

# openCVを使う
>https://qiita.com/FukuharaYohei/items/5d49938ffd33d198f0c0
>conda list  

結果一部↓
anaconda                  5.2.0                    py36_3

1. WHEELパッケージDL
opencv_python‑4.1.2‑cp38‑cp38‑win_amd64.whl

1. Anaconda仮想環境作成

WHEELをインストールしようとしたらエラー  
ERROR: opencv_python-4.1.2-cp38-cp38-win_amd64.whl is not a supported wheel on this platform.

>https://qiita.com/r-ngtm/items/f7dc53bf713d12f6be9d　
コマンドプロンプトpthonモードで、pipが対応しているCPを確認する  

```from pip._internal.pep425tags import get_supported
get_supported()```

[('cp36', 'cp36m', 'win_amd64'), ('cp36', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

→CP38がない
```
opencv_python‑4.1.2‑cp36‑cp36‑win_amd64.whl
```
でやり直し

1. numpyとmatplotlibインストール
確認↓  
```
import cv2
print(cv2.__version__)
```
4.1.2  

# バッチファイル  
何回も実行する時に行っていた作業をバッチファイルにまとめました。
```
@echo off
REM バッチファイルを置いている場所をカレントディレクトリにする
cd /d %~dp0

REM 入力フォルダを空にする
del .\inputs\*.* /Q

REM 入力元のフォルダにある写真をコピーして配置
copy .\bk\inputs\copy\*.jpg .\inputs\

REM 年月日、時刻を取得
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
 
set time2=%time: =0%
 
set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%

REM 年月日、日時のフォルダを作り、出力されたJPGを移動
cd .\bk\outputs
md %yyyy%-%mm%%dd%-%hh%%mn%%ss%
cd ..\..\
move .\outputs\*.jpg .\bk\outputs\%yyyy%-%mm%%dd%-%hh%%mn%%ss%\
```

# 作成したファイルはGithub
### githubコマンド

```cd C:\Users\maple\Documents\07_LE\05_合宿\合宿201911```

リポジトリのクローン作製
```git clone https://github.com/3x-boy/le_camp_v6.git```

ブランチを見る（ローカル）
```git branch```

リモートブランチも見る（リモートブランチは赤字）
```git branch -a```

リモートブランチをローカルブランチとして作成。 
-bで移動も＋ 
ローカルブランチの名前（好きなやつ） 
リモートブランチの名前（remote/の後ろ） 
```git checkout -b develop/a origin/develop/a```

既にローカルブランチがある場合の移動  
```git checkout master```
```git checkout develop/a```

addする 
```git add openCVCutAndSave02.py```

コミットする　-mはコメント 
```git commit -m "first" openCVCutAndSave02.py```

フォルダ、削除分含め、差分全部をadd
```
git add *
git add -a
```

差分をコミットする時にeditモードにならないようにする
```git commit -am "add feature"```

PUSHする（PUSHできる権限を持つアカウントにログインが必要） 
```git push -u origin origin/develop/a```  

pushできているように見えるのにできてない。
↓でやったらログイン画面が出てできた
```git push```

ユーザー名、アドレスを確認する
```git config --local user.name  
git config user.email
git config user.name
```  

local > global > system の順に上書きされる

ユーザー名、アドレスを変更する：確認のコマンドの次の引数に任意の名前を入れる 
```git config user.name niko093-13```

originがどこになっているか確認 
```git remote -v```

## コントリビューター(Contributor)
そのプロジェクトに対して、外部から貢献する（している）人たちです。  
そのプロジェクトのリポジトリ、そのものに対して、pushしたり、mergeしたりといった権限は持っていません。  
そのプロジェクトに対して、修正を反映したい場合には、そのプロジェクトをForkして修正し、Pull Requestを行うといった手順を踏む必要があります。

## コラボレーター(Collaborator)
そのプロジェクトのコアな開発者たちです。  
そのプロジェクトのリポジトリ、そのものに対して、pushしたり、mergeしたりといった権限を持っています。  
また、そのプロジェクト自体に対する変更権限を有します。

## 地味にだいじ
PUSHしようとしたら403エラー。 
コラボレーターとして登録してもらう　→登録しているメールアドレスにメールが来ているので、 
View～っていうボタンを押して、Acceptする。

# 成果物（マージ前）
https://github.com/3x-boy/le_camp_v6/tree/develop/a
  
【develop/a】
│　kensho.py　　　　　　　　　　・・・顔認識した人数を出力する
│　openCVCutAndSave02.py　　　・・・顔を識別して、識別できた顔を切り取り出力する
│　README.md
│
└─gamen
　　│　mop.html　　　　　　　　　・・・動画を送信し、受け取った画像を表示する
　　│
　　├─css
　　│　　　bootstrap.min.css
　　│　　　style.css
　　│
　　├─img
　　│　　　（画面で使用する画像たち）
　　└─js
　　　　　　bootstrap.bundle.min.js
　　　　　　jquery-3.4.1.js
　　　　　　query.js