線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1884
推到 Plurk!
推到 Facebook!

如何將Matlab的程式碼,轉換成BCB的程式碼呢?

尚未結案
bala0514
一般會員


發表:42
回覆:37
積分:15
註冊:2004-07-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-12 17:46:19 IP:61.30.xxx.xxx 未訂閱
以下為影像分析的Matlab程式碼,要如何轉換為易懂的BCB程式碼呢? 謝謝各位高手
I = imread('D:\MATLAB7\work\88.bmp');
figure, imshow(I), title('original image');
BWs = edge(I, 'sobel', (graythresh(I) * .1));
figure, imshow(BWs), title('binary gradient mask');
se90 = strel('line', 3, 90);
se0 = strel('line', 3, 0);
BWsdil = imdilate(BWs, [se90 se0]);
figure, imshow(BWsdil), title('dilated gradient mask');
BWdfill = imfill(BWsdil, 'holes');
figure, imshow(BWdfill);
title('binary image with filled holes');
BWnobord = imclearborder(BWdfill, 4);
figure, imshow(BWnobord), title('cleared border image');
seD = strel('diamond',1);
BWfinal = imerode(BWnobord,seD);
BWfinal = imerode(BWfinal,seD);
figure, imshow(BWfinal), title('segmented image');
BWoutline = bwperim(BWfinal);
Segout = I; 
Segout(BWoutline) = 255; 
figure, imshow(Segout), title('outlined original image');
***程式語言真是一門高深的學問***
------
***程式語言真是一門高深的學問***
arisaka_matsuri
高階會員


發表:25
回覆:205
積分:231
註冊:2003-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-14 16:33:28 IP:140.113.xxx.xxx 未訂閱
dear bala0514:    要轉換是沒有問題的,但是,絕對不是「易懂」~因為在BCB下,每一個MATLAB的function都得自己重寫,似乎沒有現成的可以用。你可以根據function的功能或對應的公式改用C寫出來,就可以在BCB下用了。    舉個例來說,imread可以改用TBitmap::LoadFromFile來完成;imshow可以看成將影像顯示在TImage上;title可以改用Label元件來顯示。    唯有了解MATLAB function的演算法,才能將你貼的code轉換完成。有幾個方法可以試試看: 1. 根據function的功能找出演算法,自行寫成C的code 2. 直接研究function的 .m 檔,將它改寫。雖然原始碼是公開的,但是其中錯綜複雜的呼叫,可能會花上很多時間。再加上MATLAB使用向量作為函式參數來傳遞,要注意維度以及其他雜七雜八的細節,可能比用 1. 的方式還慢。    因此還是建議你,先研究一下各個function的演算法比較實在。我曾經改寫過edge這個function,但只有sobel的方法,你可以參考一下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41085
系統時間:2024-05-17 12:21:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!