善悪の屑(3)~(5)

クズだなぁ~と思っていたのですが、完全に異常者だわって思うのも増えてきたな。

ナンパセミナーのヤツはクズですが、園田は異常者ですね。
私のなかではカテゴリーが違うなぁ。

4巻ではホストの話が難解というか消化不良というか。

殺された被害者も相当にクズで、彼女も殺されてもしょうがないと思ったので依頼を止めた → 依頼人としてくる人は本当に愛していた人を失った者のみ → 被害者はそこまで愛されていなかった → クズは本当には愛されない と解釈しました。

この件はカモが依頼を断る理由が十分なだけに、断るパターンでも良さそうでしたけどね。

あと 朝食会 が登場します。
サービス内容は復讐のサポートだったんですか。
カモ達とはサービス内容が違っていて、利用者は意向にあったものを選べて良い世界ですね(違

5巻はなんとも言えないな。
普通にありそうなストーリーですね。
現実的すぎてフィクションがうまく融合できていない感じがする。

カモが 暴力は誰にでもできる事 → バカでもできる事 と定義していたのは面白いですね。
やろうと思っても誰にもできる事じゃないけどな。

kameyatakefumi.hatenablog.com

トラオ 徳田虎雄 不随の病院王

読もうと思ったキッカケは友人が入院した病院が 徳洲会病院 だったからです。
病院の玄関を入ると、そこには 生命(いのち)だけは平等だ! と書かれたプレートがあったような気がします。
病室に入ると机の上に入院費プランみたいなものが置いてあって、所得に応じて料金が決まるみたいな感じだったと思う。
プランを詳しく把握しようと思わなかったのだけど 理念をどう体現するのか っていう意思を感じて興味が出てきて本を読むに至りました。

読んでいて思ったのは、戦争は 怪物を生む と。
戦後の過酷な環境で育った人達の中には、ブレーキが壊れているというか、爆発しそうな情念を宿した人が出てきますね。
彼もその一人ですね。
あと思い当たるのが 仲田幸子 かな。

本の内容としては 徳田虎雄 に集中するというよりは、徳田虎雄 という人物ができるに至った背景とか、その周りについて掘り下げたものでした。

とても中立で読みやすいんだけど最初に読む一冊ではないなぁと思った。
読むにしてもある程度の知識を入れた上で読んだ方がいいですね。

自伝と、あと側近が書いた本が欲しいです。
能宗克行 とかが筆を取ってくれると最高ですね。

あと、思わぬ気づきが多くて、普天間基地移設問題とかに絡んでいたりして、知らなかった事がわかったのは凄くよかった。
調べたら 猪瀬直樹東京都知事 の 贈収賄疑惑 にも関係があるんですね。
政治関係に絡みすぎです。

この本の著者も言っていますが、政界進出しないで病院経営に専念していたらっと思ってしまいますね。
それだけ功罪が大きくて if を考えてしまいます。

この本、政治とか選挙の話が多いんですよね。
この記事を書いた昨日は 2017衆院選 の 開票日 でした。
本の影響なのか今まで以上に政治に興味を持って投票した年になりました。

善悪の屑(1)~(2)

Amazon取扱していないんだね。

最初の話はグロ度が 外道の歌 よりも高いですね。
話の流れといいインパクトを狙って書かれた感じがします。

にしても、依頼人がもういいよって言っているのに殺しちゃうのってありなんだろうか。
被害者の代行として私刑するって事かと思ったら、カモの私情が入ってきてビックリした。
いや、そっちの方が人間くさいんですけどね。
カモ先輩は子どもが被害にあっているとマジ容赦ないっすね。

そういう意味で、この行動は伏線というかカモの行動原理に根ざすものがありますね。

わりと拷問が凝っているというか、よく思いつくなぁと。
映画のソウみたいな感じがするな。

一家洗脳の主導者なんて避雷針さされて逆さ吊りなんで、最初の話の拷問のパワーアップ版で、どう考えても無理ゲー感がある。

JOJO岸辺露伴が殺人鬼になったようなヤツも早速でてますね。
頭がいいし最後の敵になるのかな。
擬態が上手いというか日常に溶け込んでいるので、どう見つけるんだろう。

あと、元となる事件があるんですね。
ちょっと読んでいるだけで気分が悪くなるレベルです。
読まないのをオススメします。

kameyatakefumi.hatenablog.com
kameyatakefumi.hatenablog.com

外道の歌(1)~(4)

外道の歌(1) (ヤングキングコミックス)

外道の歌(1) (ヤングキングコミックス)

面白い。
よくできている。
一気に4巻まで読んでしまった。

予備知識なしで読みました。
最初はクズ同士のくだらない縄張り争いなのかなぁっと気が重かったのですが、読んでみると全然違う。

とてもリアルなんだけど、いい感じにフィクションを混ぜて、読みやすいし感情移入しやすい。
エロとかグロとかの描写が薄いのもいいですね。

いわいる悪が悪を裁く内容です。
人間は感情の生き物なので、綺麗事じゃ割り切れません。

これだけ発達した社会だと復讐代行の仕事は本当にありそうです。

4巻の最後の話は賛否ありそうですね。
作者的に解釈を読者に任せる感じの書き方が非常にうまく語りたくなるような内容です。

悪というほどでもないが無責任で想像力のあまりない人間って難しい。
出所後、罪悪感にかられて謝罪したいっとなっていますが、これもあくまでも自分が楽になりたいという自分勝手な感情ですからね。

そういう意味で 命には命をもって償う っていうのは、わかりやすいです。

調べたら2部にあたり、1部は 善悪の屑 っていうタイトルみたいですね。

タイトルが変わると予備知識なしだと察せません。
1部も読もう。

kameyatakefumi.hatenablog.com
kameyatakefumi.hatenablog.com

JavaCV を使用して 三国志大戦4 の 武将カードの 将器副 復活減少 を判定する

kameyatakefumi.hatenablog.com

前回、解任済み武将カードを判定する事ができました。
今回は個の判定に戻ろうと思います。

個の判定についてはバリバリにプログラムを書いていく事になりそうです。

調べた結果 OpenCV という画像処理系のライブラリが熱いみたいですね。
導入の手軽さから JavaCV を利用します。

将器副 復活減少 は以下になります。
f:id:kameya_takefumi:20171017162323p:plain

将器副 復活減少 が以下の画像に何個あるか判定したいです。
f:id:kameya_takefumi:20171013133242p:plain

指定の画像が対象となる画像のどこにあるのかを判定する処理を テンプレートマッチング というそうです。
最初、言葉がわからずに検索に苦労しました。

以下、JavaCV のテンプレートマッチングのサンプルです。
javacv/TemplateMatching.java at master · bytedeco/javacv · GitHub

テンプレートマッチング と OpenCV の説明では以下がわかりやすかったです。
Pythonでテンプレートマッチング、OpenCVサンプルコードと解説 : ネットサーフィンの壺

サンプルを以下の通り修正して実行しました。

public class TemplateMatching {

    public static void main(String[] args) {

        //read in image default colors
        Mat sourceColor = imread("SR董卓.PNG");
        Mat sourceGrey = new Mat(sourceColor.size(), CV_8UC1);
        cvtColor(sourceColor, sourceGrey, COLOR_BGR2GRAY);
        //load in template in grey 
        Mat template = imread("将器副 復活減少.PNG", CV_LOAD_IMAGE_GRAYSCALE);//int = 0
        //Size for the result image
        Size size = new Size(sourceGrey.cols() - template.cols() + 1, sourceGrey.rows() - template.rows() + 1);
        Mat result = new Mat(size, CV_32FC1);
        matchTemplate(sourceGrey, template, result, TM_CCORR_NORMED);

        getPointsFromMatAboveThreshold(result, 0.947f).stream().forEach((point) -> {
            rectangle(sourceColor, new Rect(point.x(), point.y(), template.cols(), template.rows()), randColor(), 2, 0, 0);
        });

        imshow("Original marked", sourceColor);
        waitKey(0);
        destroyAllWindows();
    }

    public static Scalar randColor() {
        int b, g, r;
        b = ThreadLocalRandom.current().nextInt(0, 255 + 1);
        g = ThreadLocalRandom.current().nextInt(0, 255 + 1);
        r = ThreadLocalRandom.current().nextInt(0, 255 + 1);
        return new Scalar(b, g, r, 0);
    }

    public static List<Point> getPointsFromMatAboveThreshold(Mat m, float t) {
        List<Point> matches = new ArrayList<>();
        FloatIndexer indexer = m.createIndexer();
        for (int y = 0; y < m.rows(); y++) {
            for (int x = 0; x < m.cols(); x++) {
                if (indexer.get(y, x) > t) {
                    System.out.println("(" + x + "," + y + ") = " + indexer.get(y, x));
                    matches.add(new Point(x, y));
                }
            }
        }
        return matches;
    }

}

以下、実行結果です。
f:id:kameya_takefumi:20171017164552p:plain

判定されている!
けど、何重にも判定が行われているようにみえます。

出力結果は以下の通りです。

(103,57) = 0.95975274
(104,57) = 0.9996804
(105,57) = 0.9592217
(159,57) = 0.9535268
(160,57) = 0.9985073
(161,57) = 0.9670713

しきい値 0.947f だと1つにつき3回判定されていますね。
しきい値を上げると、今度は別の画像を読ませたときに、引っかからないものが出てくるでしょう。
悩ましい所です。

私としては しきい値 を緩めで設定して、判定した対象の座標から +-3 ぐらいを1つとみなしてまとめる対応が好きですね。

変数として しきい値 以外に 許容誤差の値 も必要そうです。

OpenCV というか JavaCV は簡単に導入できて素晴らしいですね。
サンプルも豊富だし凄いし楽しい。

kameyatakefumi.hatenablog.com
kameyatakefumi.hatenablog.com