JavaScriptのmapとfilter

JavaScriptのmapfilterについてまとめてみます。

map

2乗を計算します。

[1, 2, 3].map(function(i){ return i * i; });

実行結果

[1, 4, 9]

filter

偶数のみを抜き出します。

[1, 2, 3, 4, 5].filter(function(i){ return i % 2 == 0; });

実行結果

[2, 4]

リンク

Array.prototype.map() – JavaScript | MDN
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

Array.prototype.filter() – JavaScript | MDN
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

Magick++ライブラリ

Magick++はC++言語で使える画像処理ライブラリです。ImageMagickでできるような画像処理を自分のプログラムに組み込むことができます。

ヘッダーファイルの読み込み

#include <Magick++.h>

ライブラリの初期化

Magick::Image image(*argv);

画像処理

ファイルを読み込む

Magick::Image image("example.jpg");

2値化

image.type(Magick::BilevelType);

処理後の画像を保存

image.write("magick++.jpg");

画像を2値化するサンプルコード

#include <Magick++.h> 
#include <iostream> 

int main(int ac, char **av)
{
  Magick::InitializeMagick(*av);

  try{
    Magick::Image image(av[1]);
    image.type(Magick::BilevelType);
    image.write("magick++.jpg");
  }
  catch(Magick::Exception &error_){
    std::cout << "exception: " << error_.what() << std::endl;
  } 

  return 0; 
}

コンパイルとリンク

ヘルパースクリプトMagick++-configを使うとヘッダーのパスやリンクオプションを自動で指定できます。

c++ magick++.cc `Magick++-config --cppflags --cxxflags --ldflags --libs`

2値化した画像の例