検索 - みる会図書館

検索対象: C言語による画像処理入門 Introduction to Image Processing using programming language C

C言語による画像処理入門 Introduction to Image Processing using programming language Cから 254件ヒットしました。

C言語による画像処理入門 Introduction to Image Processing using programming language C


280 年 11 月 20 日 281 年 2 月 20 日 281 年 9 月 30 日 2 開 2 年 4 月 30 日 282 年 12 月 10 日 283 年 9 月 10 日 284 年 6 月 1 日 285 年 4 月 10 日 286 年 4 月 5 日 287 年 3 月 20 日 2 開 8 年 5 月 20 日 ◎ 著 作 者 行 者 発 行 初 版 1 刷 発 行 初 版 2 刷 発 行 初 版 3 刷 発 行 初 版 4 刷 発 行 初 版 5 刷 発 行 初 版 6 刷 発 行 初 版 7 刷 発 行 初 版 8 刷 発 行 初 版 9 刷 発 行 初 版 10 刷 発 行 初 版 11 刷 発 行 安 あ 居 ぐ 1964 年 現 長 な が 在 尾 お 1984 年 現 在 者 紹 介 院 猛 工 学 博 士 東 京 工 業 大 学 博 士 課 程 修 了 た け し は る 究 院 教 授 横 浜 国 立 大 学 大 学 院 環 境 情 報 研 研 究 施 設 助 教 授 を へ て 東 京 工 業 大 学 工 学 部 像 情 報 工 学 東 京 工 業 大 学 博 士 課 程 修 了 智 晴 工 学 博 士 と も 東 京 工 業 大 学 名 誉 教 授 研 究 施 設 教 授 東 京 工 業 大 学 工 学 部 像 情 報 工 学 C 言 語 に よ る 画 像 処 理 入 門 lntroduction tO lmage Processing using programming language C 安 居 院 阿 井 國 猛 昭 検 印 省 略 著 者 承 認 定 価 は カ バ 発 印 刷 所 第 リ 〒 東 京 都 新 宿 区 矢 来 町 48 安 信 印 刷 工 業 株 式 会 社 東 京 都 中 央 区 月 島 2 ー 13 ー 5 樊 式 昭 晃 堂 ム 社 表 示 し て あ り ま す P r i n t e d i n J a p a n 社 日 本 書 籍 出 版 協 会 会 員 社 自 然 科 学 書 協 会 会 員 工 学 書 協 員 郵 便 番 号 162 ー 0805 東 京 都 新 宿 区 矢 来 町 48 振 替 口 座 00130 ー 0 ー 139320 電 話 ( 03 ) 3269 ー 3449 番 ( 代 表 ) F AX ( 03 ) 3269 ー 1611 番 製 本 広 瀬 製 本 所 ISBN 4 ー 7856-3124 ー 4 く 株 日 本 著 作 出 版 権 管 理 シ ス テ ム 委 託 出 版 物 〉 本 書 の 無 断 複 写 は , 著 作 権 法 上 で の 例 外 を 除 き 禁 し ら れ て い ま す . 複 写 さ れ る 場 合 は , そ の つ ど 事 前 に 株 日 本 著 作 出 版 権 管 理 シ ス テ ム ( 電 話 03 ー 3817 ー 5670 , FAX 03 ー 3815 ー 8199 ) の 許 諾 を 得 て く た さ い . http://www. shoko-do. co ・ jp/

C言語による画像処理入門 Introduction to Image Processing using programming language C


参 考 文 献 本 書 に 関 連 す る 参 考 文 献 を 次 に 示 す . 理 解 を さ ら に 深 め る 際 に 参 照 し て ほ し い . 始 め に , 本 書 で 扱 っ た 画 像 処 理 ・ 認 識 , 及 び c 言 語 の プ ロ グ ラ ミ ン グ に 関 す る 全 般 的 な 入 門 書 を 示 し , 続 い て 各 章 で 参 照 し た 文 献 を 通 し 番 号 で 示 す . な お , 本 書 は 画 像 処 理 の 初 心 者 を 対 象 と し て い る た め , 文 献 は 最 小 限 に と ど め た . こ に 掲 載 さ れ て い る 文 献 は 関 連 文 献 の ご く 一 部 で あ る こ と に 注 意 し て ほ し い . 画 像 処 理 ・ 認 識 全 般 に 関 す る 入 門 9 ) 田 村 秀 行 監 修 : " コ ン ビ ュ ー タ 画 像 処 理 入 門 " , 総 研 出 版 ( 1985 ) 8 ) 安 居 院 猛 , 中 嶋 正 之 画 像 工 学 の 基 礎 " , 昭 晃 堂 ( 1986 ) の 尾 上 守 夫 監 修 鷙 画 像 処 理 ハ ン ド ブ ッ ク " , 昭 晃 堂 ( 198 の , 6 ) 鳥 脇 純 一 郎 画 像 理 解 の た め の デ ィ ジ タ ル 画 像 処 理 I ] , [II]", 昭 晃 堂 ( 1988 ) 5 ) 安 居 院 猛 , 中 嶋 正 之 , 長 尾 智 晴 lrb 。 pascal 画 像 処 理 の 実 際 " , 工 学 社 ( 1988 ) 4 ) 南 敏 , 中 村 納 画 像 工 学 " , コ ロ ナ 社 ( 1989 ) 3 ) 安 居 院 猛 , 中 嶋 正 之 画 像 情 報 処 理 " , 森 北 出 版 ( 199D 2 ) WilIiam K. pratt : 'Digital lmage processing", J0hn Willey ( 1991 ) 1 ) 安 居 院 猛 , 長 尾 智 晴 . " 画 像 の 処 理 と 認 識 " , 昭 晃 堂 ( 1992 ) ( 本 書 の 姉 妹 図 書 ) ※ 画 像 処 理 の ご く 最 近 の 手 法 な ど に つ い て は , 電 子 情 報 通 信 学 会 , 映 像 情 報 メ デ ィ ア 学 会 , 10 ) A. Rosenfeld, A. c. Kak ( 長 尾 真 監 訳 ) : " デ ィ ジ タ ル 画 像 処 理 " , 近 代 科 学 社 ( 1978 ) 1 ) B. Ⅳ カ ー ニ ハ ン , D. M. リ ッ チ ー ( 石 田 晴 久 訳 ) 鷙 プ ロ グ ラ ミ ン グ 言 語 C 第 2 版 " , 共 c 言 語 の プ ロ グ ラ ミ ン グ に 関 す る 入 門 = 情 報 処 理 学 会 , 画 像 電 子 学 会 な ど の 学 会 誌 の 特 集 記 事 を 参 考 に し て ほ し い . 立 出 版 ( 1989 ) (" 定 番 " 的 な 図 書 ) 2 ) 柴 田 望 洋 定 本 明 解 C 言 語 入 門 編 " , ソ フ ト バ ン ク ( 1999 ) な ど . ※ C 言 語 に つ い て は , 特 定 の C コ ン パ イ ラ に 関 す る も の を 含 め て , 現 在 , 非 常 に 多 数 の 単 行 本 が 市 販 さ れ て い る . こ の た め , 書 店 で 何 冊 か の 類 書 を 実 際 に 手 に 取 り , 読 み 易 く , 分 か り 易 そ う な も の を 自 分 で 選 ん で ほ し い .

C言語による画像処理入門 Introduction to Image Processing using programming language C


7 動 画 像 処 理 image2 [y][x] = MAX BRIGHTNESS; else image2[y][x] = 0 ; main( ) printf("*** frame No. 1 の デ ー タ を 読 み 込 み ま す . vn"); load—image—data( ) ; だ framel デ ー タ - - > imagel copy—image1—to—image2( ) ; だ framel デ ー タ ー > image2 printf("*** frame No. 2 の デ ー タ を 読 み 込 み ま す . vn"); load—image—data( ) ; だ frame2 デ ー タ - - > imagel make—difference—image( ) ; だ 差 分 を 求 め て image2 へ printf("*** 差 分 画 像 の デ ー タ を 保 存 し ま す . *n"); save—image—data( ) ; だ 差 分 画 像 ー > 出 力 実 行 結 果 . return 0 ; save—image—data( ) ; / * マ ス ク 画 像 ー > 出 力 printf("*** 差 分 画 像 か ら 作 っ た マ ス ク 画 像 を 保 存 し ま す . *n"); だ 差 分 マ ス ク 画 像 - - > image2 * / ma•ke—mask—image( ) ; 149 図 7.2 ( a ) を 背 景 画 像 , 同 図 ( b ) を 動 画 像 中 の 1 フ レ ー ム で あ る と 仮 定 し た と き の 差 分 画 像 を 同 図 ( c ) に 示 す . ま た , 差 分 画 像 を 2 値 化 し て 得 た マ ス ク 画 像 の 例 を 同 図 ( d ) ~ ( D に 示 す . 2 値 化 の し き い 値 は 画 像 の 下 に 示 し て あ る . 図 7.2 か ら , 背 景 画 像 と の 差 分 を と る こ と に よ っ て , き わ め て 簡 単 に 移 動 物 体 領 域 を 抽 出 で き る こ と が わ か る . 背 景 画 像 と の 差 分 を 求 め る 処 理 に は 次 に 示 す よ う な 特 徴 が あ る . ( 1 ) 移 動 物 体 の 抽 出 が 容 易 で あ る . ( 2 ) 処 理 が 単 純 な た め ハ ー ド ウ ェ ア 化 し 易 い . ( 3 ) 移 動 物 体 と 背 景 の 階 調 ( 色 ) が 近 い と き , あ る い は , 移 動 物 体 に 同 一 階 調 ( 色 ) の 部 分 が あ る と き , 移 動 物 体 だ け を 切 り 出 す こ と が 困 難 に な る 場 合 が あ る . 上 記 ( 3 ) に つ い て 説 明 を 追 加 す る . 一 般 に 差 分 画 像 に お い て 移 動 物 体 領 域 だ け が 階 調 を も ち , そ の 他 が 完 全 に 0 に な る と い う こ と は , ノ イ ズ な ど の 影 響 も あ る の で , ほ と ん ど 起 こ り 得 な い と 考 え た 方 が よ い . 移 動 物 体 内 に 差 分 が 非 常 に 小 さ い 領 域 が 生 じ る こ と が 多 く , 適 当 な 固 定 し き い 値 で 2 値 化 し て マ ス ク 画 像 を 生 成 す る と , 本 来 1 つ で あ る 移 動 物 体 が 複 数 の 領 域 に 分 割 さ れ て し ま う こ と が よ く あ る . 図 7.2 ( d ) ~ (f) か ら も そ れ が う か が え よ う . し き い 値 の 大 き さ に よ っ て も マ ス ク 領 域 が 大 き く 変 化 す る . 移 動 領 域 が 分 割 さ れ て し ま っ た 場 合 , そ れ ら を 統 合 す る こ と は 難 し い 問 題 で あ る . マ ス ク 画 像 を 用 い て , 原 画 像 中 の 移 動 物 体 の 領 域 を 切 り 出 す こ と が で き る . 次 に 示 す 例 題 7-2 に , そ の た め の プ ロ グ ラ ム を 作 成 す る .

C言語による画像処理入門 Introduction to Image Processing using programming language C


7 動 画 像 処 理 154 イ ` 差 分 画 像 左 右 方 向 か ら の 走 査 得 ら れ た 移 動 物 体 領 域 図 7.6 差 分 画 像 か ら の 塊 と し て の 移 動 物 体 の 抽 出 例 題 7-3 : 図 7.6 に 示 す 原 理 に 基 づ く 差 分 画 像 か ら の マ ス ク の 生 成 例 題 7-1 の プ ロ グ ラ ム を 若 干 修 正 す る こ と に よ り , 差 分 画 像 を 左 右 方 向 か ら 走 査 し て 移 動 物 体 を 塊 と し て 切 り 出 し て マ ス ク 画 像 を 生 成 し , そ れ こ の プ ロ グ ラ ム と 例 題 7-2 を 保 存 す る プ ロ グ ラ ム を 作 成 せ よ . さ ら に の プ ロ グ ラ ム を 利 用 し , 3 枚 の 連 続 す る フ レ ー ム の 中 間 の フ レ ー ム 中 の 移 動 物 体 領 域 を 抽 出 せ よ . 解 答 例 : だ 塊 状 の マ ス ク を 作 る プ ロ グ ラ ム make_msk. c*/ #include<stdio. h> #include<stdlib. h> #include"mypgm. h" void copy—image1—to—image2( ) /*imagel の 画 像 デ ー タ を image2 へ コ ピ ー す る * / int x, y; / * ル ー プ 変 数 * / x_size2 = X_Size 1 ; y_size2 = y_sizel; for()= 0;y<y_size1; y 十 十 ) for(x=0;x<x_size1;x 十 十 ) image2 [y][x] = imagel[y][x] ; void make—difference—image( )

C言語による画像処理入門 Introduction to Image Processing using programming language C


156 main( ) 7 動 画 像 処 理 printf("*** frame No. 1 の デ ー タ を 読 み 込 み ま す . vn"); load—image—data( ) ; / * framel デ ー タ - - > imagel copy—image1—to—image2( ) ; / * framel デ ー タ - - > image2 * / * ま frame No. 2 の デ ー タ を 読 み 込 み ま す . xn"); printf( load—image—data( ) ; だ frame2 デ ー タ ー > imagel * / make—difference—image( ) ; だ 差 分 を 求 め て image2 へ * / printf("*** 差 分 画 像 の デ ー タ を 保 存 し ま す . ¥ Ⅱ " ) ; だ 差 分 画 像 - - > 出 力 save—image—data( ) ; だ 差 分 マ ス ク 画 像 - - > image2 ま / make—mask—image( ) ; printf("*** 差 分 画 像 か ら 作 っ た マ ス ク 画 像 を 保 存 し ま す . *n"); / * マ ス ク 画 像 ー > 出 力 save—image—data( ) ; return 0 ; 実 行 結 果 . 図 7.7 ( a ) に 示 す 連 続 す る 3 枚 の フ レ ー ム を 原 画 像 に し た と き , 本 プ ロ グ ラ ム に よ っ て 生 成 さ れ た , そ れ ぞ れ 隣 接 す る 2 枚 の フ レ ー ム 間 の 差 分 画 像 を 同 図 ( b ) に 示 し , そ れ ら に 対 す る 左 右 方 向 走 査 に よ っ て 生 成 さ れ た マ ス ク 画 像 を 同 図 ( c ) に 示 す . ま た , こ れ ら 2 枚 の マ ス ク 画 像 の AND 画 像 に よ る 中 間 の フ レ ー ム に 対 す る マ ス ク 画 像 を 同 図 (d) , そ れ を 用 い て 抽 出 し た 中 間 フ レ ー ム 中 の 移 動 物 体 を 同 図 (e) に そ れ ぞ れ 示 す . た だ し 同 図 で は , マ ス ク 画 像 生 成 の 際 の し き い 値 を 30 と し た . 同 図 か ら , 中 間 フ レ ー ム 中 の 移 動 物 体 領 域 が 良 好 に 抽 出 さ れ て い る こ と が わ か る . な お , 同 図 の 原 画 像 は , テ ー プ ル の 上 を 走 ら せ た お も ち ゃ の 車 の 画 像 で あ り , 屋 内 の 安 定 し た 環 境 で 撮 影 さ れ た 画 像 で あ る . 実 際 の 道 路 上 を 走 行 し て い る 自 動 車 を 撮 影 し た 動 画 像 に 対 し て 実 行 し た 場 合 , 前 述 の よ う に ノ イ ズ な ど の 影 響 も 無 視 で き な い . ま た , こ の 例 で は 移 動 物 体 が 1 つ だ け の 単 純 な 状 況 で あ る が , 実 際 の 道 路 上 の 自 動 車 を 撮 影 し た 動 画 像 に は , 一 般 に 移 動 物 体 が 複 数 存 在 し , か っ , そ れ ら が 重 な り 合 い な が ら 移 動 し て い る 状 況 が よ く あ る . こ の よ う な 場 合 , こ こ で 述 べ た 方 法 で は 重 な り 合 う 移 動 物 体 全 体 が 抽 出 さ れ て し ま う . こ れ を 避 け る た め に は , カ メ ラ の 設 置 位 置 を 工 夫 し て , 移 動 物 体 が 重 な ら な い よ う な 原 画 像 を 得 る 必 要 が あ る . あ る い は 移 動 物 体 の 移 動 速 度 に 着 目 す る 必 要 が あ る . そ の た め に は , 動 画 像 中 の 移 動 物 体 を 切 り 出 す だ け で な く , そ の 物 体 の 各 部 分 が ど の よ う な 速 度 べ ク ト ル を も っ て 運 動 し て い る か に つ い て , さ ら に 細 か く 解 析 す る 必 要 が あ る . そ こ で 7.3 で , の よ う な 速 度 べ ク ト ル を 求 め る 方 法 に つ い て 述 べ る . 図 7.7 よ り 実 用 的 な 動 画 像 を 原 画 像 と し た と き の 移 動 物 体 抽 出 に つ い て 実 験 し , 精 度 を 上 げ る た め の 工 夫 に つ い て 検 討 し て み る と よ い .

C言語による画像処理入門 Introduction to Image Processing using programming language C


7 動 画 像 処 理 例 題 7-2 : マ ス ク 画 像 を 使 っ て 移 動 物 体 を 切 り 出 す マ ス ク 画 像 ( 白 = 255 , 黒 = 0 の 階 調 画 像 ) 中 の 白 画 素 領 域 の 部 分 を , 原 画 像 か ら 切 り 出 し た 画 像 を 保 存 す る プ ロ グ ラ ム を 作 成 せ よ . 解 答 例 : だ マ ス ク 画 像 で 移 動 物 体 を 抽 出 す る プ ロ グ ラ ム extract. c*/ 151 for(x=0;x<x_size1;x 十 十 ) for(y=();y<y_sizel;y 十 + ) intx, y; だ ル ー プ 変 数 * / void extract_image( ) image2[y][x] = imagel[y][x] ; for (x=o; x< x_sizel; x 十 十 ) for ()= 0 ; y<y_sizel; y 十 十 ) x_size2 = x_S1ze1; y_size2 = y_sizel; intx, y; / * ル ー プ 変 数 /*imagel の 画 像 デ ー タ を image2 へ コ ピ ー す る * / void copy—image1—to_image2( ) #include"mypgm. h" #include<stdlib. h> #include<stdio. h> main( ) if ( imagel[y][x] = 0 ) image2 [y][x] return 0 ; だ image2 - - > 出 力 save—image- data( ) ; printf("*** 抽 出 画 像 の デ ー タ を 保 存 し ま す . vn"); だ 領 域 抽 出 し て image2 へ * / extract—image( ) ; だ 画 像 2 - - > imagel load—image—data( ) ; printf("*** マ ス ク 画 像 の デ ー タ を 読 み 込 み ま す . vn"); copy—image1—t0—image2( ) ; だ 画 像 1 - - > image2 だ 画 像 1 ー > imagel load—image—data( ) ; printf("*** 原 画 像 の デ ー タ を 読 み 込 み ま す . vn");

C言語による画像処理入門 Introduction to Image Processing using programming language C


148 #include"mypgm. h" 7 動 画 像 処 理 void copy_imagel—to—image2( ) /*imagel の 画 像 デ ー タ を image2 へ コ ピ ー す る * / int x, y; / * ル ー プ 変 数 ま / x_size2 = x_sizel; y_size2 = y__sizel; for()= 0 ; y<y_sizel;y 十 + ) for ()= 0 ; x<x_sizel; x 十 十 ) image2 [y][x] = imagel[y][x] ; void make difference—image( ) だ ル ー プ 変 数 * / int x, y; int difference; だ 差 分 の 絶 対 値 * / if ( image2[y][x] > max dif) for ( x = 0 ; x く x_size2; x + + ) for ( y = 0 ; y く y_size2; y + + ) だ マ ス ク 画 像 の 生 成 * / } while ( max—dif く 1 凵 max dif > 100 ) ; scanf("%d" &max dif); printf ( " 差 分 の 許 容 最 大 階 調 値 ( 1 ~ 100 ) : " ) ; do { printf ( " 差 分 画 像 か ら マ ス ク 画 像 を 作 り ま す . vn"); int max-dif, だ 許 容 で き る 最 大 の 差 分 値 * / int x, y; だ ル ー プ 変 数 * / void make—mask—image( ) image2 [y][x] = (unsigned char)difference; difference = abs( image2 [y][x] - imagel [y][x]); for ( x = 0 ; x く x_size2; x + 十 ) { for ( y = 0 ; y く y_size2; y + + ) { printf(" 絶 対 値 を 求 め て image2[y][x] に 代 入 し ま す . *n"); printf("framel と frame2 の 画 素 ご と の 階 調 値 の 差 分 の ¥ n " ) ;

C言語による画像処理入門 Introduction to Image Processing using programming language C


3 2 値 画 像 処 理 else { copy=b[i]; if ( func_nc8( b ) = = 1 ) sum + + ; b[i] = copy; if ( sum = = 8 ) condition[5] だ 最 終 判 定 * / image2[y][x]=GRAY;/*=-1 を 表 し て い る 響 condition[3] & & condition[4] & & condition[5]){ if ( condition[()] & & condition[l] & & condition[2] & & 実 行 結 果 . return 0 ; save—image—data( ) ; / * image2 を 保 存 す る * / thinning( ) ; だ Hilditch の 細 線 イ ヒ を 行 う 響 load—image—data( ) ; だ 画 像 を 読 み 込 ん で imagel へ 響 main( ) } while ( counter ! = 0 ) ; path 十 十 ; if ( image2[y][x] = = GRAY ) image2[y][x] for ( x=o; x<x_sizel; x 十 十 ) for ( y=0; y<y_sizel; y + + ) if ( counter ! = 0 ) { } / * end of y * / } だ end of x * / counter 十 十 ; 57 図 3.6 ( a ) の 画 像 に 対 す る 実 行 結 果 を 同 図 ( b ) に 示 す . ま た , 原 画 像 と 細 線 化 画 像 を 重 ね た も の を 同 図 (c) に 示 す . 細 線 化 処 理 に よ っ て , 原 画 像 中 の 図 形 画 素 の 連 結 領 域 の 芯 線 が 抽 出 さ れ て い る こ と が わ か る . 細 線 化 処 理 は , 図 形 を 認 識 す る 際 の 前 処 理 と し て も 重 要 な 処 理 で あ る . ま た , 機 械 図 面 な ど を 対 象 と し た 図 面 認 識 で は , ラ ス タ 形 式 の 画 像 デ ー タ か ら 線 分 等 の べ ク ト ル 形 式 の デ ー タ へ の 自 動 変 換 ( ラ ス タ ・ べ ク タ 変 換 ) に も 利 用 さ れ て い る 7 ).

C言語による画像処理入門 Introduction to Image Processing using programming language C


1 画 像 の 入 力 ・ 補 正 ・ 出 力 部 で 次 の よ う に mypgm. h を イ ン ク ル ー ド す れ ば 良 い . #include"mypgm. h ” mypgm. h の 使 用 方 法 に 慣 れ る た め 次 の 例 題 を 解 答 し て ほ し い . 例 題 1 -1 : 反 転 画 像 の 作 成 イ ル の フ ォ ー マ ッ ト が 正 し け れ ば , 画 像 の 横 ・ 縦 方 向 の 画 素 数 , 最 大 階 調 値 プ ロ グ ラ ム を 実 行 し て フ ァ イ ル 名 を キ ー ポ ー ド か ら 入 力 す る と , 画 像 フ ァ 実 行 結 果 : return 0 ; save—image—data( ) ; だ image2 を 保 存 す る * / make—inverse—image( ) ; / * imagel を 反 転 さ せ image2 へ * / load—image—data( ) ; / * 画 像 デ ー タ を imagel に 読 み 込 む * / main( ) (MAX BRIGHTNESS - imagel[y][x]); image2 [y][x] = (unsigned char) for ( x = 0 ; x く x sizex x + + ) { for ( y = 0 ; y く y_sizeX y + + ) { y—size2 = y—sizel; / * 縦 画 素 数 * / x size2 = x_sizel; / * 横 画 素 数 響 printf ( " 反 転 画 像 を 作 成 し ま す . *n"); int x, y; だ 制 御 変 数 * / だ 原 画 像 imagel を 反 転 さ せ て image2 に 代 入 す る * / VOid make inverse_image( ) #include"mypgm ・ h" #include< stdlib. h> #include<stdio. h> / * 画 像 を 反 転 さ せ る プ ロ グ ラ ム inverse. c*/ 解 答 例 : ロ グ ラ ム を , " mypgm. h " を 用 い て 作 成 せ よ . 画 像 を 指 定 し た フ ァ イ ル 名 で 読 み 込 み , 反 転 画 像 を 作 成 し て 保 存 す る プ 3

C言語による画像処理入門 Introduction to Image Processing using programming language C


3 2 値 画 像 処 理 intx,y; だ 制 御 変 数 ま / x_S1ze2 = X Size 1 ; y—size2 = y—sizel; for(y=0; y<y_sizel;y 十 十 ) for(x=O; x<x_sizel; x + + ) { image2 [y][x] = imagel[y][x] ; if ( image2 [y][x] = = MAX BRIGHTNESS ) image2[y][x] = 80 ; void check—data( ) if ( x—sizel ! = MAX THETA Ⅱ y_sizel ! = MAX RHO ) { printf ( " こ れ は 対 象 と す る 〃 p 平 面 の デ ー タ と 異 な り ま す . *n"); exit(l); main( ) printf(" ま ず , 元 の 画 像 デ ー タ を 読 み 込 み ま す . vn"); load—image—data( ) ; だ 原 画 像 を imagel へ 響 move—image1—to—image2( ) ; だ imagel を image2 へ コ ピ ー printf(" 引 き 続 き 〃 卩 平 面 の デ ー タ を 読 み 込 み ま す . yn"); load—image—data( ) ; だ 〃 p 平 面 の デ ー タ を imagel へ * / check_data(); だ デ ー タ の チ ェ ッ ク * / あ る か ど う か を 判 断 し , も し 多 過 ぎ た り , 少 な 過 ぎ た り し た と き は 再 び し き 画 像 上 の 直 線 の 本 数 が 画 面 に 表 示 さ れ る . そ の 本 数 か ら , し き い 値 が 適 切 で そ の 値 以 上 の 累 積 値 を も つ 点 の 数 , 言 い 換 え れ ば そ の 値 以 上 の 点 列 を も っ 原 Hough 逆 変 換 で は , 累 積 に 対 す る し き い 値 を キ ー ポ ー ド か ら 入 力 す る と , を 行 う . ラ メ ー タ 平 面 の 画 像 フ ァ イ ル を フ ァ イ ル か ら 読 み 込 ん で か ら , Hough 逆 変 換 デ ー タ を 配 列 image2 に 移 動 す る . 次 に , 例 題 3-6 で 作 成 し て 保 存 し た の パ プ ロ グ ラ ム を 実 行 す る と , 始 め に 原 画 像 を フ ァ イ ル か ら 読 み 込 み , そ の 実 行 結 果 . return 0 ; save—image—data( ) ; だ image2 を 保 存 ま / inverse—Hough—transform( ) ; だ Hough 逆 変 換 し て 直 線 抽 出 * / 71