旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture13のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。

www.udemy.com

レクチャー13からPandasの話になるのですが、Pandasは使えた方が良いのでしょうか。。。今のところ特に困っておらず(困っていることに気付いていないだけかもしれません)、モチベーションは薄いですが講義受けます。

1. Pandasを使ってcsvファイルを読み込む

import pandas as pd

data = pd.read_csv('csv_example.csv')

2. 読み込んだデータはinfoやheadで内容を確認できる

import pandas as pd

data = pd.read_csv('csv_example.csv')
# 読み込んだデータの表示
data.info
# 指定した行数データを表示する(先頭5行を表示)
data.head(5)

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture10のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。

www.udemy.com

1. 線形方程式はnp.linalg.solveで解ける

import numpy as np

A = np.array([[1,2], [3,4]])
b = np.array([3,4])
x = np.linalg.solve(A, b)

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture4のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。

www.udemy.com

1. ベクトルのユークリッドノルムの計算はnp.linalg.normで出来る

import numpy as np

vec = np.array([1, 2, 3])
norm = np.linalg.norm(vec)

【WPF】 RadioButtonをユーザーが触れないようにする

IsHitTestVisibleとIsTabStopをFalseに設定します。IsHitTestVisibleのみをFalseにした場合、Tabキーを押してRadioButtonに移動し、スペースキーを押すとRadioButtonをチェックできてしまうため、両方Falseにする必要があります。

<RadioButton Content="ReadOnlyRadioButton" IsHitTestVisible="False" IsTabStop="False"/>

【OpenCvSharp】 ポインタを利用してMatクラスの画素にアクセスする

OpenCvSharpのMatクラスを走査する時、いつもAtメソッドを利用していたのですが、ポインタを使って走査する方法を見つけたのでメモします。

gist.github.com

リンク先はカラー画像に対して走査していますが、自分はグレースケール画像を走査したかったので、その場合のコード以下のようになります。unsafeキーワードを利用可能にするため、”アンセーフ コードの許可(F)”にチェックを入れることを忘れないで下さい。

unsafe {
    byte* b = mm.DataPointer;
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            byte valueAt = b[0];
            b += 1;
        }
    }
}

【OpenCV】 画像に傾いた四角形を書き込む

RotatedRectは直線を利用して描くしかないようです。。。

// 画像を読み込む
Mat source;
imread("lenna.jpg").copyTo(source);
if (source.empty())
{
    throw runtime_error("Failed to open image");
}

// RotatedRectを描画する
Mat destination;
source.copyTo(destination);
RotatedRect rect = RotatedRect(Point2f(40.0, 40.0), Size2f(60.0, 20.0), 20.0);
Scalar color = Scalar(0, 0, 0);
int thickness = 2;
Point2f vertices[4];
rect.points(vertices);
for (int i = 0; i < 4; ++i)
{
    line(destination, vertices[i], vertices[(i + 1)%4], color, thickness);
}

f:id:ni4muraano:20170420211718j:plain:w200 f:id:ni4muraano:20170420212828j:plain:w200

【OpenCV】 画像に楕円を書き込む

ellipseというメソッドを利用すると画像に楕円を書き込めますよ、というメモです。

// 画像を読み込む
Mat source;
imread("lenna.jpg").copyTo(source);
if (source.empty())
{
    throw runtime_error("Failed to open image");
}

Mat destination;
source.copyTo(destination);
RotatedRect rect = RotatedRect(Point2f(40.0, 40.0), Size2f(60.0, 20.0), 20.0);
Scalar color = Scalar(0, 0, 0);
int thickness = 2;
// 楕円を書き込む
ellipse(destination, rect, color, thickness);

f:id:ni4muraano:20170115110821j:plain:w200 f:id:ni4muraano:20170420211741j:plain:w200