FC2カウンター FPGAの部屋 画像のエッジ検出(横方向のみ)2(実機で試してみた)
FC2ブログ

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

FPGAの部屋

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

画像のエッジ検出(横方向のみ)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

コメント

やはりハードウェアでのエッジ検出は面白そうですね!!
その昔PHSのオプションカメラだった「Treva」と300円液晶でリアルタイムエッジ検出回路を作ってみたくなりました!
  1. 2009/11/03(火) 21:22:03 |
  2. URL |
  3. いえなが #-
  4. [ 編集 ]

いえながさん、こんにちは。
エッジ検出は見ていると結構面白いです。画像系はすぐに目に訴えるのが良いですね。
  1. 2009/11/04(水) 04:18:44 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1280-693ed7e7
この記事にトラックバックする(FC2ブログユーザー)