画像処理100本ノックのうち95本をGo言語で書いたやってみた感想OpenCVで実装されている基本的なAPIを自分で実装することで何をやっているかを理解することができたNumpyの行列計算やIndex処理は適切なコメントがないとすぐには意図が読み取れないことが多かったGo言語で行列を計算するのはPython(Numpy)に比べてとても大変Go言語楽しい95本で止まったのは最後の5問が機械学習との融合問題になっており、機械学習の知識を得てから取り組みたかったので95までしか解いてません。機械学習を勉強するための前準備として画像処理を復習したい。画像を使った機械学習アプリケーション作成につなげていきたい。学生時代にOpenCVのAPIを叩きまくって卒業したが、中身をちゃんと理解してない気持ち悪さをどうにかしたいPythonでやらなかった理由Pythonを普段業務で書いているので違う言語をやってみたかったPython実装が既にあるので、油断するとそれを見て思考停止してしまい自分で考えなくなりそうだったGo言語にした理由C言語とPythonを普段の業務で書いていて、Goの評判を聞くとその丁度中間の言語だと感じたのでやってみたいろんな方が言及している通り静的型付言語としての厳格さと動的言語の書きやすさが同居している不思議な感覚で実装できた標準ライブラリで画像の入出力が可能であり、OpenCVのAPIすら使わずに画像処理プログラムを書くことが可能だと思った実際にできた反省点Hilditch細線化やCannyEdgeなどの計算結果が微妙にPython実装と違っており、まだ十分に評価できていないので今後改善してくGo言語での基本的な実装に慣れることができたが、Interfaceや構造体を使った実装に取り組むことができなかった問題文にはアルゴリズムの計算方法までは書いてあるが、どのような背景でこのアルゴリズムが導かれたかまでは言及していないので別途そこは補強していく必要がある。Packageで読み込んだ値が微妙に違うため全く同じ計算結果にならない。よって、Pythonで生成した画像とGoで生成した画像を比較して目で見て評価を行う場面が多かった。初期化する際に使用するランダム値がPythonとGo言語だと違うため、自分で実装した計算結果確認のためPythonのランダム値を代入して確認する必要がある最後に大変良い勉強になりました@yoyoyo_さんに感謝します。同じように100ノックをやっているコントリビューターさんが改善活動をしており、今後より良い画像処理練習問題になっていくと思いますので画像処理に興味があるかたはやってみてはいかかでしょうか。Pythonでもnumpyを使わない実装や他の言語での実装もあると様々な比較ができて面白い教材になるかと思います。requestStockLike1kjmatu@kjmatuメーカーにいる人。