読者です 読者をやめる 読者になる 読者になる

kentsu tech Lab

何かその時の興味でいろいろする人。最近はScala使ってる。LinuxとアルゴリズムとOSSが大好き。

githubでコミットしても芝生が生えなかったわけ

昨日、githubの自分のレポジトリにコミットしてたら唐突に芝生が生えなくなった。それで色々ググった結果 masterブランチじゃないとだめ ローカルレポジトリの登録アドレスがgithubアカウントのメールアドレスになっていないとだめ forkしたやつもだめ みた…

Java使いのScala入門 〜Scala入門のはじめの一歩〜

Scala入門のはじめの一歩 これから何回かに分けてScala入門についての記事を書いていこうと思う。 教材はScala スケーラブルプログラミング[第3版]を元にJavaとの違いをまとめていく。 今回は「Scala入門のはじめの一歩」ということで、Scalaとは何か。とい…

遺伝的アルゴリズムとその応用

遺伝的アルゴリズム ~Genetic Algorithm~ 遺伝的アルゴリズム(Genetic Algorithm)とは、近似解を探索するアルゴリズム。 主にランダム性を持って要素を変化させる。進化的アルゴリズムの一つでもある。このアルゴリズムはデータを遺伝子として表現し、一つ一…

確率的解析と乱択アルゴリズム

確率的解析と乱択アルゴリズム 確率論と計算機における問題解決の手法として 確率的解析と乱択アルゴリズムについて解説していく。 ここでは以下の問題を考える。 雇用問題 問題: あなたは秘書を雇おうとしている。 その際にあなたは代理店を利用することに…

gdbを使ってコアダンプの原因を解析

コアダンプは嫌いだ。 大学やその他情報系専門科のある学校に通ったことがある人が一度は触ったことがあるであろう、C言語。 こいつは近年の言語に比べてものすごく面倒くさい書き方をするし、手間もかかる。 中でも最悪なのが「コアダンプ」の文字。 これは…

セキュリティミニキャンプ北海道2016に参加してきた

初めてミニキャンに参加してきた LOCAL学生部に加入して、しばらくしてからミニキャンのお知らせが回ってきたから何をやるんだという感じで詳細を見てみると…。Linuxでハードウェア制御、スマホアプリでサーバサイドへの攻撃と対策、クラウドセキュリティ基…

さくっとアセンブリ入門 hello,world編

さくっとアセンブリ入門 なんとなくアセンブリをはじめてみる レジスタがーとかメモリがーっていうお話は割愛 とりあえず「Hello,World」 まずはお決まりの「Hello,World」から .globl main main: movl $4,%eax movl $1,%ebx movl $msg,%ecx movl $13,%edx i…

メディアンフィルタ

メディアンフィルタ 移動平均法ではn*nの局所領域における濃度の平均値を領域中央の画素が保有する濃度として扱ったが 別の画質改善法にメディアンフィルタというものがある これは局所領域中の濃度値の中央値を領域中央の画素が保有する濃度として扱う方法…

サイトをリニューアルしたから今回使ったものをまとめてみた

はじめに 今回自分のサイトをリニューアルしたので kentsu-141.github.io これに使ったものをざっくりまとめてみる 基本的なデザイン まず基本的なデザインはこのホームページを見て思いついた sard.website ただ画像なんかを用意するのがめんどくさかったの…

C言語 構造体

6章 構造体 構造体とは、操作しやすいように一つの名前でまとめられた 1つ以上の異なった型の集まりであるこの構造体と呼ばれるものは大きなプログラムで特に複雑なデータを組織化するのに役立つ それは関連したデータを実体としてでなく一つの単位として扱…

C言語 ポインタと配列

5章 ポインタと配列 ポインタは、他の変数のアドレスを格納する変数でありC言語では頻繁に利用される理由は大きく分けて2つある 一つ目としてポインタを使うことが処理を行う唯一の方法である場合があるから 二つ目はポインタを用いて記述したほうが、それ…

Javaオブジェクトのライフサイクル管理

はじめに javaではnewを使うことで簡単にオブジェクトを生成できるが プログラムの規模が大きくなると、オブジェクトの生成から消滅までの管理が複雑化してしまうオブジェクトのライフサイクルを適切に管理するには以下のようなやり方がある・変数のスコープ…

OpenGLをC言語で扱う①

OpenGLをC言語で扱う 今回から画像処理以外にCGの部分も少しずつやっていこうと思ってこれからOpenGLをC言語でぼちぼち扱っていこうと思うインストールとかその他もろもろの環境構築は割愛 空ウィンドウを表示する まずはとりあえずウィンドウだけを表示して…

RaspberryPiにSambaをインストールしてサーバー化する

はじめに 結構前にRaspberryPI B+を買っていて そのままになっていたのを発見したのでsambaでもインストールしてサーバー化しようと思う sambaのインストール これはすごく簡単で sudo apt-get install sambaでいい sambaの設定 インストールすると/etc/samb…

移動平均法

移動平均法 今回は移動平均法を自分で実装してみた そもそも移動平均法とは、一枚の画像に含まれるノイズを除去する基本的な手法の一つで 入力画像における(i,j)成分の濃度に対しその近傍の濃度値の平均値を出力画像の(i,j)成分とする方法のこと その過程に…

判別分析法

判別分析法 判別分析法とはざっくり言えば2値化の手法の一つで 分離度という値が最大になる値を見つけ、自動的に2値化する手法分離度はクラス間分散とクラス内分散の比で求めることができる 具体的な仕組み 今、しきい値を として これがまず判別分析法を…

OpenCV+Pythonで顔にモザイク処理をする

顔にモザイク 最近はずっと画像処理の理論的な部分ばかり勉強していて、これといった成果物を出してないから 簡単に作れるものをとりあえず作ってみようっていうことで 今回は、OpenCV+Pythonで顔にモザイクをかけてみた顔認識とかはよくわからないしそうい…

python入門

はじめに 最近OpenCVをpythonで扱うことが多くなったので一度しっかりと勉強してみる 今回は自分の備忘録として書くようなスタイルなので、ある程度プログラミング言語を他に扱えることを想定している なので、ところどころ説明を省くので全くの初心者が見る…

画像処理におけるヒストグラム

はじめに 今回は画像処理をするとき(2値化などで)に使うヒストグラムというものについてまとめる ヒストグラムとは ヒストグラムとは画像処理以外の分野で使われることもあるが 画像処理の分野では、各濃度値に対してその濃度値を持った画素数を求めたもので…

画像処理における標本化と量子化

はじめに 画像処理でグレースケールと白黒について書いたがそれをもっと掘り下げようとすると量子化についてのまとめが必要で、さらに量子化を説明しようとすると標本化まで説明しないと行けないので今回はその両方を説明する 標本化 標本化とはざっくり言え…

グレースケールと白黒画像

はじめに 今回はグレースケールと白黒画像について少しまとめていく あまり画像処理に興味がない人は、どっちも対して変わらんと思うだろうけど 実は明確な差がある 白黒画像 googleで白黒画像と検索すると以下のような画像が出てくるが これは正確には白黒…

OpenCVで画像の読み込みと表示、保存

画像の読み込みと表示、保存 OpenCVを使って画像処理をしようにも、まず対象の画像が読み込めないと何もできないそして、いろいろやっていった結果の画像を見れるといいなというわけでさらにいろいろやった結果を出力できたらなおいいというわけで、今回は全…

PythonでOpenCVを使えるようにする

環境 Ubuntu 14.04 Python 2.7.4 方法 まずは例にならって環境を最新にする sudo apt-get update sudo apt-get upgradeこれで必要なパッケージをインストールするだけ sudo apt-get install libopencv-dev sudo apt-get install python-opencvnumpyが必要な…

画像処理に関してぼちぼち書き始めていく

もともと画像処理に興味があったので備忘録的な感じでまとめていこうかと思うとりあえずまずはOpenCVをpythonかC言語で使いつつ、画像処理について勉強してひと通りやったら画像処理ライブラリでも作っていくことにする

C言語 関数とプログラム構造

4章 関数とプログラム構造 C言語で書かれたプログラムは大抵、大きな計算処理を小さな多くの関数に分割して作成される その関数群は一つのソースファイルであるか、全体を通して言えば複数のソースファイルに分割されている そしていくつかの大きな関数から…

C言語 制御の流れ

3章 制御の流れ ここでは今まで普通に使ってきた制御に関することをもっと掘り下げていく 3.1 ブロックと文 これは凄く簡単なことで、C言語では式に;(セミコロン)を置くことで文になる なので宣言や代入などそれら単体で文として独立する また中カッコ{}は、…

C言語 データ型、式、演算子

2章 データ型、式、演算子 前回の1章でざっくりとした入門を終えたので、今度はひとつひとつ掘り下げていきます。 はじめは、大抵どの入門書でもはじめに扱うデータ型、式、演算子というものです。まず宣言と演算子を交えて… 宣言は変数を並べて、型を定義…

C言語 やさしい入門

この前、プログラミング言語Cという C言語の開発者が書いている本を買ったので それで勉強したことをまとめていく 1.第一章 やさしい入門 この章では細かい点を抜きにしてCを手短に紹介している 1.1 手始めに まず避けては通れない 「hello,world」の出力を…

java【数値】

まずは、数値の中で比較的扱う頻度の高い整数の話から 1.整数 数学の世界には正の数にも負の数にも無限大までありますが プログラミングの世界には整数といえど限りがあります そしてjavaには整数を扱う5つのデータ型が存在し、それぞれ範囲が設定されてい…

java【文字列】

プログラミングにおいて、文字列を操作出来るようになるとかなり出来ることの幅が広がると言われるほど文字列を扱うことは重要である そのことを踏まえて、javaで文字列を扱うとはどういうことかまとめてみる まず第一に、扱う文字列をどう定義するか。 1.St…

javaにおけるオブジェクトの同一性と等値性

これは大抵のコンパイルを必要とする言語でよくある?やつ javaではString型の比較で==演算子を使うと正しく評価されないという 初心者向けの入門書によく書いているあれ ざっくり言えば ==は同一性を指す つまりオブジェクトが同じかどうか じゃあ、等値性…

わざわざ記事にするほどではないjavaの型についてのお話

javaで型についてちょっとしたお話 javaでは型をプリミティブ型と参照型と大きく二分できる プリミティブ型はオブジェクトではなく 逆に参照型はオブジェクトである しかし、プリミティブ型をオブジェクトして扱いたい時がどうしてもある そういう時はラッパ…

正しく実装するのが実は難しい二分探索

この前から珠玉のプログラミングっていう本を読んでて「なるほどな」っと思うことがあったのでまとめてみる まず、二分探索って結構簡単に実装出来そうな雰囲気あるし 線形探索(先頭から一個ずつ探索する方法)よりも効率的な部分がある(大抵は線形探索で…

android4.4向けのwebブラウザを作ってる

最近、まるでブログを更新していなかったけど 実はandroid向けのwebブラウザを作っていた それで、検索機能と ブラウザで進むと戻る、更新が出来るようになり 最低限の機能が完成したので今は「Lisa」というプロジェクトでgithubで公開している github.com …

java8でソケットを使う

今回はjava8でソケットを使ってみる ずっとCの話だったりして全くjavaの話は載せていなかったけど 自分が使う言語の中で一番使えるのはjavaっていう事実 ソケットで通信を扱うってどうやんの? これがわかればあとは単純なコード書きだけ ソケットを使う通信…

ちょっとしたアルゴリズムのお話

今回は普段の画像処理、ネットワークプログラミングの話から少し変わって アルゴリズムのお話 ということでさくっとまとめていく まず、プログラムとは 問題解決の為に ・何をプログラムするか ・解決策を選択する ・コードにする ことからなる つまりアルゴ…

C言語の基礎を一日で復習してみた[メモ]

最近、パケットキャプチャをC言語作っていて なんだかちょいちょい怪しい部分があるので、基礎を一日で復習してみようと思う 変数、ループ、場合分けなんかは大丈夫だと思っていたけど Cでメモリを意識する際に重要なことを見つけた まず、変数とは 値を格納…

二時間ほどパケットキャプチャを改良した結果

さっきブログに記事を投稿してから、二時間ほどコードを改変していました 主な改善点と追加点は ・-sコマンドでシンプルな情報だけ表示する機能 ・-dコマンドで詳細な情報を表示する機能 ・どちらのモードでも現在時刻を表示する機能 これだけの追加だったの…

自作の貧弱パケットキャプチャ

何を思ったのか、以前作っていたパケットキャプチャを改良(ほぼ改変)しようと思い始めた 具体的には現在CPackManとしてgithubで公開してる貧弱でキャプチャと呼べるか怪しいキャプチャを改変する 実際の所、名前も結構気に入ってるのでリファクタリングや機…

とりあえずはてなブログ始めてみた

なんやかんやでいつもお世話になってる気がするはてなブログ ちょっと興味が湧いたので始めてみた そして、ツイッターのプロフィールに記載するサイトURLをgithub pagesからgithubに変更した そんなこんなで初回は特に書くことが無いので、github pagesの自…