Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

imagemagick

imagemagickで画素情報をとる

opencv for pythonならimage[x,y]で取れますが これをimagemagickでやった場合 # for i in {1..10}; do convert -crop 1x1+$i+$i -format "%[fx:r *255] %[fx:y * 255 ] %[fx:b * 255]\r\n" rose.png info: ; done 48 45 45 48 44 44 47 41 41 45 41 41 51 4…

ImagemagickでPDFを結合する

銀行に提出する書類がPDFで、それに1枚追加の説明資料を差し込むことに。 モノの性質上オンラインでやるのは気が引けたので……imagemagickでやる事に。 実際のところ 画像とほぼ同じですが、解像度で指定するのでdensityタグが必要。 パラメータはdpi、印刷…

imagemagickをつかって画像を暗号化/復号化

実際のところ 暗号化 magick rose.jpg -encipher passphrase.txt rose.png 復号化 magick rose.png -decipher passphrase.txt rose.jpg 暗号化には画像も使えるらしい 参考もと ImageMagick – Encipher or Decipher an Image Transformations -- ImageMagick…

imagemagickで斜めの枠にあわせて画像を回転させる

imagemagickのmagickコマンドであれば、斜めの枠線にあわせて画像を回転させることができます。 ここで使うconvex-fullは日本語では凸包(とつほう)といい、要素をカバーする最小の多角形……という意味らしいです。 今回は単純な四角形で考えます。 実際のと…

Imagemagickで出力形式を明示する

特に標準出力に出す際、データ形式が指定できてないと後の処理でエラーを吐く事があります。 幸い出力形式を明示するオプションがあるので、これを使います。 実際のところ convert rose: JPEG:- | identify - -=>/tmp/magick-2117PiGxgXKBtM8 JPEG 70x46 70…

imagemagickで画像サイズや色設定の情報を取得

画像のサイズや色のビット数など、久しぶりに使うデータは結構忘れがちです。 "info:"をつかうとそういった基礎情報の値を出力することができます。 実際のところ $ convert test.jpg info: test.jpg JPEG 640x480 640x480+0+0 8-bit sRGB 43649B 0.000u 0:0…

有線LANポートつき小型SBC「Nano Pi Neo 2」であそぶ その5:監視カメラ的なのをつくる

ただ撮るだけじゃなく、差分があれば通知するようなのを 実際のところ 導入 前回の流用なのでfswebcamで撮影。 imagemagickが必要。 $ sudo apt install imagemagick 何も考えずに差分 ImageMagickで有り無し判定 - Bye Bye Moore での知見を活かして $ comp…

imagemagickで画像に電子透かしみたいなのをやる

フォトストックなんかである、画像に電子透かしを入れる奴をimagemagickでやる 実際のところ imagemagcikのロゴに convert -size 140x80 xc:none -fill grey \ -gravity NorthWest -draw "text 10,10 'Copyright'" \ -gravity SouthEast -draw "text 5,15 'C…

ImageMagickで有り無し判定

shuzo-kino.hateblo.jp では色の判定を使いましたが……元画像との差分のあり。 比較画像 まず基礎となる何もない部分。微妙な木目があり、しかもカメラに対して斜め 対象となるアリ判定の画像 カギが端っこにおかれています ナシ判定用の素の画像 動かしてこ…

imagemagickのopaqueオプションではrgb値設定も使える

imagemacikのopaqueオプションは色領域とその周辺を抽出する機能を提供してくれます その指定はいろんなサンプルですと、以下のような感じで色リストから選ぶものが多いです ImageMagick – Color Namesとはいえ、ある状況ではベースの色が分かっている事もあ…

tputでCLIな端末をキレイにしたり動的に変わる画面を作ったりする

tputは端末に特殊文字を出すときに使ったりするコマンドです 色付けをしたりするのが有名どころかと これに仕込まれている特殊変数をつかって、疑似的に動的画面を作成できます ……なんか遠い昔、大学図書館のUNIX系の本でこれをつかったCLI画面テトリスを見…

ImageMagickのDeleteオプション

実際のところ 0からはじまるので、ためしに0番、2番、4番を消してみます $ convert -size 30x30 xc:black -fill white -draw 'circle 15,15 5,15' \( +clone -shade 110x90 -normalize -negate -alpha Off \) \( +clone -clone -2 -compose Plus -composi…

Imagemagickのappendオプションで画像を連結する

appendは"+"で横、"-"で縦につなぎます 実際のところ "+"のとき $ convert -size 30x30 xc:black -fill white -draw 'circle 15,15 5,15' \ \( +clone -shade 110x90 -normalize -negate -alpha Off \) \ \( +clone -clone -2 -compose Plus -composite \) \…

imagemagickで画像のハッシュを出す

一ビットだけ違うとかだと目視では違いが分からんですが……ハッシュ値があると別ファイルと区別できます。 実際のところ 実際、同じセッティングのUSBカメラの撮影結果をつないでも、バラバラな数字がでてきます。構文はfomatオプションに"%#" $ fswebcam -c …

imagemagickで台形変換

カメラが傾いている等々で台形になってしまった時 四隅の点座標がわかれば変換ができる 実際のところ distort オプションで四隅の点を指定 convert mandrill_blin.jpg -matte -virtual-pixel black \ -distort BilinearReverse \ '26,0 0,0 114,23 128,0 128…

imagemagickでcropを使って画像を切り抜く

実際のところ こんなのがあったとします $ fswebcam -c fswebcam_1.conf - | imvr -領域をきめる $ fswebcam -c fswebcam_1.conf - | convert - -fill 'rgba(255,0,0, 0.2)' -draw "rectangle 100,100 400,400" - | imvr -大体アタリつけたら、そこを切り抜…

imagemagickのdefineオプションを使う その3:

. 参考もと ImageMagick – Defines

imagemagickのdefineオプションを使う その2:領域を描く

このまんまだと可視化できないので、先ほど得られた重心に赤い半透明の四角を書きます convert sample.png -fill 'rgba(255,0,0, 0.7)' -draw 'rectangle 244,230 254,240' - | imvr - convert sample.png -fill 'rgba(255,0,0, 0.7)' -draw 'rectangle 184,…

imagemagickのdefineオプションを使う その1:オブジェクトIDをふる

実際のところ $ fswebcam -c fswebcam_1.conf sample.png $ convert sample.png -alpha off -colorspace gray -negate -threshold 10% \ -define connected-components:verbose=true \ -define connected-components:area-threshold=100 \ -connected-compon…

imagemagickのフォーマット構文で特定領域の色情報を出力

cropして構文を指定し、infoで出力。 今書いてまs

imagemagickのフォーマット構文からファイル名を取得する

imagemagickではprintfのようにレポート出力用の構文が用意されています。 実際のところ ファイル名を取得するのは"%[basename]"です。 $ convert img001.png -format "%[basename] is fine\r\n" info: img001 is fine

ImageMagickで減色する

画像処理等で、色数が減ったほうが処理が早くて助かるケースもあります。 今回は、そんなとき、どう色を落とすかについて。 実際のところ ここに、255色ある画像があります magick base.png -format "(%f) -> %g %C %k\n" info: (base.png) -> 800x1712+0+0 …

ImageMagickで画像情報を取得

"fomat"オプションでprintf構文な感じでサイズだとか画素情報だとかを取得可能 実際のところ ファイル名、サイズ、圧縮形式、色の数を参照 $ magick base.png -format "(%f) -> %g %C %k\n" info: (base.png) -> 800x1712+0+0 Zip 255色数については指定範囲…

ImageMagickでモザイク化(pixelate)する

モザイク化する方法、考えてみりゃその通りなのですが……縮小して拡大すればピクセルになりますね 実際のところ $ magick convert ruby.png -scale 10% -scale 1000% newruby.png 参考もと stackoverflow.com

ImageMagickの色分離 その2:複数の色も指定できる

実際のところ カラー画像ならお目当ての色名でいける magick convert uiui0.png -channel Cyan -separate uiui99.png果ては、CMYKとRGBの混合……いいのかそれは magick convert uiui0.png -channel Cyan,Blue -separate uiui99.png 参考もと Color Basics and…

ImageMagickでゴマ塩ノイズを消すとき

深度カメラなんかだと、変なとこに細々とした点が残ったりします。 とりあえずカタマリが分かればいいとき、このゴミが色々邪魔になったりします。 実際のところ morphologyオプションをつかうと、消したり拡大出来たりします。 Erodeは「侵食する」といた意…

Imagemagickで輪郭抽出する

実際のところ 以下のようにやると、アルファ背景の画像を白黒化し、輪郭を抽出できます convert foo.png -colorspace gray -alpha remove -edge 4 bar.png これだと反対なので、白黒をひっくり返します convert foo.png -colorspace gray -alpha remove -edg…

ImageMagickでバケツツールっぽいこと その2:つかわない部分の透明化

,ある特定の領域が明らかに不要な場合……たとえば、水平線より上とか、グリーンバックとか。RGBA化して $ convert input.png -alpha set -background none -channel RGBA -fill '#00000000' -fuzz 20% -draw 'matte 1,1 floodfill' output.png前回の塗りつぶ…

convert のlogをつける

convertコマンドの動作ログをとるのにオプションがついてますが……なんだか情報が少ないので自分用にメモ。 実際のところ 参考もと ImageMagick - Command-line Options

Imagemagickで領域を縁取りっぽい事をする

基本はバケツツール風と同じですが、今度は色でなく画像パターンでやる感じです 実際のところ まずは公式サンプルから。二値化した三角形を10ピクセル分、ブラー色つきバーを生成。これが領域図示でつかう二つの画像を合成。 convert -size 100x100 xc: -dra…