FC2カウンター FPGAの部屋 2009年11月03日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

サイクリング、ウッドデッキ、映画

今日の午前中に縦横斜めのエッジ検出のVHDLコード書いていたら飽きてきたので、サイクリングに行ってきた。この辺は田舎なので農道が縦横無尽につながっていて、そこを自転車で走ると人にも車にもめったに会わない。(ちなみに道の周りの芝は畑です。芝を栽培して表面をはぎ取って売ります。ゴルフ場とかに使われるんでしょうね?)
cycling_1_091103.jpg

雲がぽかぽか浮かんでいて、とても良い天気で気持ちが良い。とってもペダルが軽いと思ったら、追い風だった。これは、調子に乗って漕いでいると帰りが大変。5, 6Kmくらい行って引き返してきた。帰りは筑波山がきれいに見えるが、向かい風でペダルが重い。
cycling_2_091103.jpg

午後2時ころ、ウッドデッキの材料を買いに、奥さんと一緒にグランステージへ、防腐処理 2X4X8Fを70本、買いに行った。

ウッドデッキパーツ表

防腐処理 2X4X8F 55本 床板用 計 (4,850(970*5)mm / 93mm = 52.15本)55(52.15)本*520円 = 27,560円
防腐処理 2X4X8F 10本 床桟用 5,200円

計 防腐処理 2X4X8F 65本 32,760円

斜めの分
防腐処理 2X4X8F 5本 床板用 (970mm / 93mm = 10.43本)半分なので5本でOK

総計 防腐処理 2X4X8F 70本 36,400円


材木を持ってこようと思ったが、取り寄せということになった。今日の予定が空いたので、急遽、映画を見に行こうということになり、イーアスへ。
”風が強く吹いている”を見てきた。箱根駅伝を見るのが好きなので、良かった。設定が安易な気もするが、美しい走り(と私は思える)を見るのは気持ちが良い。
  1. 2009年11月03日 18:59 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

画像のエッジ検出(横方向のみ)2(実機で試してみた)

画像のエッジ検出(横方向のみ)1”で作ったコードをインプリメントして実機で確かめてみた。
最初に、Edge_Threshold_Def(エッジ検出のスレッショルド)が64でやってみたが、真っ暗で隣のピクセルと64値が離れているところはないようだった。
次に、Edge_Threshold_Def = 32 とした。こうすると少しはエッジが見えてきた。詳しくは下図参照。
edge_detect_3_091103.jpg

後の私の顔とかが映っていますが、エッジが少し見えてきた。まだ足りなそうなので、Edge_Threshold_Def = 16 としたところ下のようになった。下図参照。
edge_detect_4_091103.jpg

だいぶエッジが見えてきた。これだけだとなにを撮っているかがわからないので、白黒画像で表示した写真を下に示す(若干位置が違うけど、こんな雰囲気)。
edge_detect_5_091103.jpg

やはりエッジの表示だけだとさびしいし、画像のどの部分のエッジを取っているかが良くわからない。そこで、CMOSカメラのY成分と重ね合わせることにした。今は、Edge_Value_Def = 128なので、ちょうどCMOSカメラのY成分(cam_ydata_2d) を1ビット右シフトしてORすれば、ちょうど良いのではないかと思った。早速、Camera_Controller.vhd のエッジを検出する部分を下のように書き換えた。

    -- 1つ前のYデータと現在のYデータを比較してエッジを検出する
    process(h_valid_flag, alu_out, cam_ydata_2d) begin
        if h_valid_flag='0' then -- 1つ前のYデータがない
            ydata_out <= '0' & cam_ydata_2d(7 downto 1);
        elsif h_valid_flag='1' then
            if alu_out >= Edge_Threshold_Def then
                ydata_out <= CONV_STD_LOGIC_VECTOR(Edge_Value_Def, 8) or ('0' & cam_ydata_2d(7 downto 1));
             else
                ydata_out <= '0' & cam_ydata_2d(7 downto 1);
            end if;
        else
            ydata_out <= '0' & cam_ydata_2d(7 downto 1);
        end if;
    end process;


こうしてディスプレイに表示された画面を下図に示す。
edge_detect_6_091103.jpg

これを見ると画像のどの位置のエッジを検出しているかが良くわかる。雑誌のエッジ、コンフィグケーブルのUSBケーブルのエッジを検出しているのがわかる。雑誌を見ると、横方向のエッジは検出しているが縦方向のエッジは検出してないことがわかる。これは、横方向のエッジのみ検出する方式を使用しているので当然だ。
今度は縦横斜めのエッジを検出して、横だけ検出のものと比較してみたい。
  1. 2009年11月03日 04:36 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:2