- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
萬能电子系周建兴
萬能電子系
周建興
數位影像處理教學程式
開發環境介紹
使用軟體 Borland C++ Builder 6.0以上版本
個人電腦一台
程式網址74/students/ister/others/image/Image_Program.htm
請下載Image4c.rar,並解壓縮執行
程式畫面
點擊projext1.exe執行檔
軟體功能簡介
開啟影像檔程式請看 File --Open Image
儲存影像檔程式請看 File --Save Image
量化程式(Quantization)
32 Color? - 量化成32色
8 Color? - 量化成8色
2 Color? - 量化成2色
練習開啟與儲存影像檔案
練習用程式轉成2色影像
空間頻域之影像處理方法?
Darker? - ?變暗
Lighter -? 變亮
Inverse -? 反相
Histogram Equalization - 長條圖等化
Thresholding -? 取閥值做二值化處理 (修改數值會有不同的結果)? ?
Thresholding AutoSelecting -? 程式自行選取適當的閥值做二值化處理? ?(可用H.bmp這張圖測試)
練習將影像變暗
練習將影像做反相
反相影像
練習長條圖等化
濾波器處理方法? (Filter)
Lowpass Filter - ?低通濾波器???
Highpass Filter - 高通濾波器???
Medium Filter - 中值濾波器??? ??(可用Lena-noise.bmp這張圖測試)
Sobel Filter -? 找Edue(邊緣)? (修改數值會有不同的結果)
開啟被刮傷的影像
使用低通濾波器(模糊化)
使用中值濾波器處理受損影像
開啟H.bmp檔案
使用高通濾波器顯示邊界
使用SOBEL濾波器找邊界
描述方法 (Representation)
Thinning - 細化 (可用H.bmp先取閥值後 在對這張圖做細化
還原原始檔案? - 點選還原原始檔案的按鈕? 即可還原成原始影像??? )
程式中的參數說明
Image_Width?????? 開啟影像的寬度??????
Image_Height????? 開啟影像的高度
Data[][] 儲存開啟影像與用來進行運算的陣列,此陣列為二維陣列?
Data[Image_Width][Image_Height]
第一維的大小是Image_Width?? 第二維的大小是Image_Height
副函式說明如下
GetBitmap( )
將影像的資料讀進預先宣告的Data[][]陣列
SetBitmap( )
將Data[][]陣列中的資料? 儲存到原始影像中? 並顯示在圖片上
Retrieve( )
將Data[][]陣列中的資料還原回原始影像中的資料
練習用Borland C++ 2009修改程式
先用BCB打開專案檔
作業一:寫一個反相功能的程式
開啟後,請先點Run執行程式一次。
然後關閉執行的程式
作業一
點選unit.cpp
作業一
點Design, 打開程式的Form
作業一
點Main Menu1
作業一
點main menu空白處,來新增一個新的功能,在左邊caption處取名為作業1
作業一
按下ENTER後,點作業1就會連結到可以寫程式的地方
作業一
反相的原理,便是黑變白,白變黑
公式為 (假定為256色灰階影像)
反相後的數值 = 255-目前灰階值
影像的寬度會儲存在Image_Width
而影像的高度會儲存在Image_Height
因此利用兩個for迴圈,將每個像素的影像值予以更改
作業一
程式範例
for(int i = 0; i Image_Width; i++)
for(int j = 0; j Image_Height; j++)
Data[i][j] = 255 - Data[i][j];
SetBitmap();
SetBitmap是在像素值都被修改後,用來顯示影像的函示。
作業一
寫好的程式碼
然後按Run(F9)執行程式
作業一
程式若沒有寫錯,執行的介面會出現一個新的作業(1)按鍵。
開啟一張影像作測試
程式執行結果
作業二:寫一個簡易的變亮處理
同樣的步驟,先做出作業二的按鈕
作業二:寫一個簡易的變亮處理
簡易的變亮方法,就是增加每個像素的灰階影像數值。
例如:變量後數值=原始灰階值+40
但是要注意影像數值不可超過255
因此要用IF判斷式,將大於255的數值改為255
作業二:寫一個簡易的變亮處理
程式範例
for(int i = 0; i Image_Width; i++)
for(int j = 0; j Image
文档评论(0)