2013-01-01から1年間の記事一覧

ディレクトリのみをリストアップする方法

findのmaxdepthオプションを使うのがスマート。 find . -maxdepth 1 -type d で、カレントディレクトリにあるディレクトリを列挙できる。-typeでファイルタイプをディレクトリと指定。-maxdepthで検索する階層の深さを指定。これを指定しないと再帰的にディ…

xargs

find . -name "*.foo" | xargs grep bar は、 grep bar `find . -name "*.foo"` と同じ。findの-execオプションを使ってgrepと連携する技もあるが、xargsより遅いらしい。-execの構文は覚えにくいので、xargsを使うのがよさそう。 参考 xargs - Wikipedia

grepで複数行を対象にサーチ

grep -Pオプションを使って複数行を検索する方法 grepは単一行のみしか検索できないのかと思っていたが、オプションを使うとできることが分かった。 例として、検索対象のテキストtest.txtに以下のように書かれているとする。 aaabbbccc dddeeefff ggghhhiii…

Pythonではまったこと

インクリメント ある整数を格納した変数をインクリメントしようと、CやPerlを書く時と同じような気持ちで以下のコードを書いた。 num = 10 ++num print numエラーも警告もなく実行されるが、表示される値は意図に反して 10であった。Pythonではインクリメン…

カラー画像を3色で分離、さらに色を入れ替えた画像を作成

コード 以下の通り。 void bgr_split(){ cv::Mat src = cv::imread("./input/baboon.jpg", 1); vector<cv::Mat> planes; // 3つのチャネルB, G, Rに分離 (OpenCVではデフォルトでB, G, Rの順) cv::split(src, planes); // 保存 cv::imwrite("./output/b.jpg", planes[</cv::mat>…

16,777,216色をすべて使ったpng画像を生成する

R, G, Bがそれぞれ8ビットの場合、生成可能な色数は(2^8)^3 = 約1678万色。これらすべてを4,096×4,096の正方形に配置するプログラムをお遊びで書いてみた。 void show_all_bgr_colors(){ cv::Mat img(256*16, 256*16, CV_8UC3); for(int b = 0; b < 256; ++b…

XP + FedoraなEeepcをXP専用機に戻す

XP専用機に戻したかった理由 XPをWindows 8にアップグレードするため。Eee PC 1000HA をWindows 8へとアップグレードしようとすると、最後の再起動の後にまたXPが立ち上がり、「Windows 8をインストールできませんでした お使いのPCは、Windows 8 のインスト…

FedoraではなくWindowsがデフォルトで起動するよう、GRUB の設定を変更 その2

以前に、WindowsとFedoraとをデュアルブートできるようにしてあるPCで、デフォルトで起動するOSを返る方法を紹介した。 FedoraではなくWindowsがデフォルトで起動するよう、GRUB の設定を変更 - minus9dの日記 最近Fedora 17をクリーンインストールしたらま…

cv::Mat使用時の画素へのアクセス方法

OpenCVのcv::Matクラスに格納された画像データの各画素にアクセスする方法を、以下の2種類ご紹介する。 atメソッドを用いる方法 dataメソッドを用いる方法 画素にアクセスする回数が少ないのならatメソッド、全画素に順番に読み出すなど頻繁に画素にアクセス…

Radeonのドライバーをアップデートすると周囲に黒枠が発生

事象 OpenCLを使うためにATI Radeon HD 5770のドライバーを最新版にアップデートした。すると、ディスプレイの周囲に謎の黒枠が発生した。 解決方法 株式会社アスク | ATI RadeonシリーズでHDMI接続時に黒枠が表示される場合 に従う。具体的には Catalyst Co…

OpenCV2.4.3をWindowsでビルド

OpenCV2.4.3をWindowsでビルド。ただ使うだけならOpenCVのインストーラを展開するだけでいいのだが、今回はOpenCLとIntel TBBを動かせるようにするためにビルドを試みた。ハマりどころが多くあるので一筋縄で行かなかった。 以下は64ビット版のDLLをVisual S…

STLを使って文字列を小文字化

C++

std::transform(str.begin(), str.end(), str.begin(), ::tolower); というのを使うと一行で書けるらしい。 #include <algorithm> #include <iostream> #include <string> int main(){ std::string data = "jAnUaRY"; std::cout << data << std::endl; // 文字列中のすべての大文字を小文</string></iostream></algorithm>…

OpenCV2.x系で画像を読み込んでcv::Matに格納し、情報を得る

OpenCV2.x系から画像をcv::Matで扱うようになったのに未だに慣れず、毎回調べてしまっている。このへんでいい加減まとめておく。 1 cv::Matの基本処理 — OpenCV2 プログラミングブック リファレンス編がもっとも参考になった。以下はこのサンプルをもとにし…

Webで引ける英和辞書

探してみると結構ある。個人的には、基本的な単語の場合を引くには学習用辞書であるルミナス英和、やや難し目の語を調べるにはWeblioの新英和中辞典、専門用語の訳語や大量の例文がほしい時に英辞郎を引くことが多い。 英辞郎 英語・語学の学習情報サイト「…

腕時計J-AXISの時報とアラームを止める

実家にあった腕時計J-AXISの時報とアラームがうるさかったので止め方を調べた。 腕時計のタイプ 右上がDATE 右下がALARM 左上がLIGHT 左下がMODE 時報の止め方 標準時刻表示のときに右下を押しながら左下を押す アラームの止め方 標準時刻表示のときに右下を…