SOGO論壇
  登入   註冊   找回密碼
查看: 4058|回覆: 1
列印 上一主題 下一主題

[程式設計] 有人能幫我把這篇程式轉成C語言的寫法嗎? [複製連結]

Rank: 2

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-7-8 19:11:51 |只看該作者 |正序瀏覽
這是一篇小弟我用MATLAB寫的可適性閥值運算
是關於影像切割處理的部分 但是我不會用C語言來寫
所以在此麻煩各位神人和高手幫小弟解答


c=imread('rice.png');
c2=double(c).*(x/2+50)+(1-double(c)).*x/2;
x=ones(256,1)*[1:256];
c3=uint8(255*mat2gray(c2));
t=graythresh(c3)
ct=im2bw(c3,t);
p1=c3(:,1:64);
p2=c3(:,65:128);
p3=c3(:,129:192);
p4=c3(:,193:256);
g1=im2bw(p1,graythresh(p1));
g2=im2bw(p2,graythresh(p2));
g3=im2bw(p3,graythresh(p3));
g4=im2bw(p4,graythresh(p4));
imshow([g1 g2 g3 g4])
imshow([p1 p2 p3 p4])
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 11Rank: 11Rank: 11Rank: 11

熱心參予論壇活動及用心回覆主題勳章 數位硬體勳章

狀態︰ 離線
2
發表於 2012-7-8 20:11:01 |只看該作者
本帖最後由 mm117777 於 2012-7-8 20:13 編輯

將MATLAB源碼自動轉換並生成C語言代碼
6.1版本的Matlab軟件包中提供了C/C++的數學和圖形庫,通過其編譯器支持可以將Matlab中編寫的m文件轉換成以C/C++代碼的文件,而且可以將m文件生成dll庫,甚至我們可以直接調用其中的庫函數,生成並發布不必依賴Matlab的可執行文件。通過mcc編譯器生成C/C++代碼,進而可以在VC或者其它編譯器生成可獨立執行的應用程序。
    下面具體討論如何利用Matlab編譯器從m文件生成C/C++代碼,並嵌入用戶代碼,生成運行時不需Matlab支持的應用程序。設matsum.m文件,內容如下:

function sum = matbs( a, b )
% sum
sum = a + b
用mcc命令轉換為C/C++代碼,命令行參數如下
生成C文件
      mcc -t -L C matsum.m
生成C++文件
      mcc -t -L Cpp matsum.m
生成動態鏈接庫函數
      mcc -t -W lib:sum -T link:lib matsum.m
    註意①lib:後跟生成的庫文件名不能和原m文件名相同(此處為sum),②此處只能生成C語言方式的動態鏈接庫。該編譯命令共生成9個文件,其中sum.lib和sum.dll是可以在C/C++應用程序中調用的動態鏈接庫文件。

直接利用MATLAB所提供的library,將你原先的.m檔轉成.c檔
   優點:1.產生的執行檔可以拿到別台PC上執行,PC本身不需要裝MATLAB.
             2.經過最佳化後,執行效能有可能比直接在MATLAB上跑來的快
   缺點:1.必須再去熟悉MATLAB所提供轉成c code function call的使用方法
             2.當你MATLAB上的演算法有改變時,程式必須重build

2)直接由c code去呼叫MATLAB engine來執行(變數可由MATLAB或c code傳入或傳出)
   優點:1.這種方法的學習曲線較短,比較容易上手
             2.當演算法有變更時,可直接修改m檔就可,程式不需重build
   缺點:1.執行效益差
             2.程式一定要在與有安裝過MATLAB的PC上執行,可攜性不好

請參考以下的連結
Solving Engineering Problems Using MATLAB C++ Math Library
Solving Engineering Problems Using MATLAB C API
MATLAB Engine API
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-11-26 07:59

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部