windows subsystem for linux(WSL)の設定

やること

windows10でubuntu16.04を利用する環境を構築する

なぜか

pythonを使って、Deep Learningの勉強をしたいなと思い下記環境を試しました。

  1. windowsにAnacondaを入れる
  2. visual studioを使う
  3. dual bootでlinux ( ubuntu ) を入れる

しかし、私にはそもそもwindows環境で開発するという環境が合わなかったです。
開発するうえでわからないことを調べると基本的にlinux環境での事例が多く環境の違いをいちいち調べる手間がかかりました。
(Anacondaの設定も結局はlinux環境で行う記事が多いので...)
なので、開発はlinux環境で行いたいという前提があります。
そのため、選択肢としては、dual bootでubuntuしかなかったです。
しかし、普段使っているアプリケーションはwindowsに入っているので、 PC1台を切り替えるのは非常にめんどくさいという大きなデメリットがありました。

最近(といっても結構前からですが...)、windows10でlinuxが使える仕組みがあると聞き利用を始めました。

設定方法

  1. windows subsystemの有効化

以下の画像のように設定を変更する

f:id:techsho:20200404140507p:plain
wsl説明

  1. ubuntuのインストール

    f:id:techsho:20200404140803p:plain
    wslのインストール

  2. パッケージのアップデート

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の関数を使って様々な図形を描く

なぜか

当然ながら、pythonopencv(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()

出力結果

f:id:techsho:20200404142442p:plain
出力結果

参考になりそうな本(読んでないけど...)


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

参考になりそうな本(読んでないけど...)


introduce myself

働き方改革を受けて、自分の時間が持てるようになってきたので

今一度、ソフトウェアを勉強していこうと思っています。

 

そこで、今まで勉強したことをまとめるためにこのブログを活用しようと思います。

 

技術系な内容などいろいろ書いていこうと思います。

また、英語が苦手なので、日本語の文章を書いてそれを英語に直して勉強していこうと思います。

 

まずは、github, medium, dev.toの登録をしてみます。