週末は大忙しです
1週目 マイクロマウス金沢の忘年会
2週目 京都でTOEFLの受験
3週目 忘年会キャンセルしてPICの講習会準備と講習
行きつけの定食屋で知り合いになった人に頼まれてPICのプログラムを教えることになりました。
週末しか家事をする暇がないので家はごみため、洗濯物は溜まる一方(T_T)
平日も忙しく
まさに師走です。

↑月例会

↑マウス忘年会



↑京都にて

↑京都忘年会での一こま(笑)

↑PIC講習で使った

void houghtrans()
{
int[] houghmat = new int[1024 * 1024];
int N = 1024;
int maxvalue=0;
int tmp=0;
int maxindex=0;
int maxm = 0;
int maxn = 0;
double maxro = 0;
double maxtheta = 0;
for (int i = 0; i < 1080; i = i + 1)//URGのデータ一つ一つ検査
{
double x = lrf.Range[i] * Math.Cos(i * 0.25*Math.PI/180 - Math.PI / 4);//極座標→デカルト座標
double y = lrf.Range[i] * Math.Sin(i * 0.25*Math.PI/180 - Math.PI / 4);
if (Math.Abs(x) < 5000 && Math.Abs(x) > 500 && Math.Abs(y) < 5000 && Math.Abs(y) > 500)//範囲を限定
{
for (int n = 0; n < N; n++)//走査範囲をNで決めた数で分割して調べる
{
double ro = x * Math.Cos(n * Math.PI / N) + y * Math.Sin(n * Math.PI / N);
int m = (int)(ro / 7500 * N/2 + N/2);
tmp = ++houghmat[m * N + n];
if (tmp > maxvalue)
{
maxvalue = tmp;//ハフ変換により変換された曲線がピクセルに何線重なっているかカウントしこれまでの最大値を記憶
maxindex = m * N + n;//最大値のインデックス番号
maxm = m;//最大値の行番号
maxn = n;//最大値の列番号
maxro = ro;//最大値のρ
maxtheta = maxn * Math.PI / N;
}
}
}
}
leserScanerViewer1.Theta = maxtheta;
leserScanerViewer1.Ro = maxro;
label1.Text = maxindex.ToString();
label2.Text = maxvalue.ToString();
label3.Text = maxm.ToString();
label4.Text = maxn.ToString();
}