windows subsystem for linux(WSL)の設定
やること
windows10でubuntu16.04を利用する環境を構築する
なぜか
pythonを使って、Deep Learningの勉強をしたいなと思い下記環境を試しました。
- windowsにAnacondaを入れる
- visual studioを使う
- dual bootでlinux ( ubuntu ) を入れる
しかし、私にはそもそもwindows環境で開発するという環境が合わなかったです。
開発するうえでわからないことを調べると基本的にlinux環境での事例が多く環境の違いをいちいち調べる手間がかかりました。
(Anacondaの設定も結局はlinux環境で行う記事が多いので...)
なので、開発はlinux環境で行いたいという前提があります。
そのため、選択肢としては、dual bootでubuntuしかなかったです。
しかし、普段使っているアプリケーションはwindowsに入っているので、
PC1台を切り替えるのは非常にめんどくさいという大きなデメリットがありました。
最近(といっても結構前からですが...)、windows10でlinuxが使える仕組みがあると聞き利用を始めました。
設定方法
- windows subsystemの有効化
以下の画像のように設定を変更する
ubuntuのインストール
パッケージのアップデート
sudo apt update sudo apt upgrade
とりあえずここまでするとwslが使えるようになります。
ただし、コンソールのみなので、xwindowを入れないとGUIが使えないです。 私はVcXsrvを使ってます。
xwindowを入れてもGUIが上手く表示されないときは、~/.bashrc
に
export DISPLAY=:0.0
を追加して、source ~/.bashrc
で適応すれば解決するかも。
windows側からhomeディレクトリのアクセス(memo)
ubuntu18.04LST
C:\Users\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home
opencvでカラー画像作成
やること
opencvの関数を使って様々な図形を描く
なぜか
当然ながら、pythonのopencv(cv2)とC++のopencv(cv::)とで関数の仕様がことなります。 コーディングをしていてどっちだっけ?ってなることが多いのでメモしておきます。
使う関数
- 矩形
cv2.rectangle()
- 円
cv2.circle()
コード
google colaboratoryを利用します。
矩形&円
import numpy as np import cv2 import matplotlib.pyplot as plt % matplotlib inline USIZE = 256 VSIZE = 256 CHANEL = 3 MAXHEIGHT = 50 MAXWIDTH = 50 def makeImage(): image = np.zeros((256, 256, 3)) boxnum = 20 for i in range(boxnum): sx = np.random.randint(0, USIZE-MAXWIDTH) sy = np.random.randint(0, USIZE-MAXHEIGHT) ex = sx + np.random.randint(1, MAXWIDTH) ey = sy + np.random.randint(1, MAXHEIGHT) color_b = np.random.randint(0, 255) color_g = np.random.randint(0, 255) color_r = np.random.randint(0, 255) if(i % 2 == 0): ## rectangle(画像, 始点(左上), 終点(右下), カラー(B,G,R), 塗りつぶし(-1)) image = cv2.rectangle(image, (sx, sy), (ex, ey), (color_b, color_g, color_r), -1) else: ## circle(画像, 中心, 太さ, カラー(B,G,R), 塗りつぶし(-1)) image = cv2.circle(image, (sx, sy), np.random.randint(5, 10), (color_b, color_g, color_r), -1) image = image.astype(np.uint8) plt.figure() plt.imshow(image) makeImage()
出力結果
参考になりそうな本(読んでないけど...)
PythonでのOpenCVの利用
やること
python3.6でopenCVをインストール
なぜか
openCVは画像処理ライブラリで昔からC++で利用していました。
画像の読み込みや色変換など今まで使ってきた機能が使えるので画像処理のメインライブラリとして使っていきます。
また、numpyとの親和性が高いので使いやすいです。
設定方法
最新のインストール
pip install opencv-python
pip3 install opencv-python
バージン指定xxx
pip install opencv-python==xxx
pip3 install opencv-python==xxx
ほしいライブラリが足りないときはopencv-contrib-python
をインストールしてみる
pip install opencv-contrib-python
pip3 install opencv-contrib-python