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

程式轉換問題

尚未結案
akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-23 21:37:11 IP:163.28.xxx.xxx 未訂閱
想請問各位大大們~~ C++寫好的程式可以直接貼到BCB來作執行的動作嗎? 我試過以後~~沒有出現錯誤~~可是就是不能跑> < 或是該怎麼樣來改變裡面的code? 就函數部分來說~~他跟C++有不ㄧ樣嗎? 怎麼會這樣~~程式好難喔    
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-23 23:32:33 IP:218.168.xxx.xxx 未訂閱
您好: 請將程式碼po上來讓前輩們幫您看看
akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-24 22:23:05 IP:163.28.xxx.xxx 未訂閱
主程式部分是以下 
 
void main()
{   
    // (1).讀取必要檔頭  nr nc 影像長寬
        // Max_L_NO 最大編號數目  有幾個區域物體
        int Max_L_NO=0;
        int Max_NO=0;
        bmp_header();
    // 宣告 開存檔 動態陣列
        //regionfill  陣列大小注意 
        float **buf_i,**buf_o,**buff,**buf_oe,**buf_ref,**regionfill;
        buf_i=(float **) malloc(nr*sizeof(float *));
        buf_o=(float **) malloc(nr*sizeof(float *));
         buff=(float **) malloc(nr*sizeof(float *));
        buf_oe=(float **) malloc(nr*sizeof(float *));
         buf_ref=(float **) malloc(nr*sizeof(float *));
        regionfill=(float **) malloc(512*sizeof(float *));
        
        for(int i=0;i
這是其中2個函式
 
void Algorithm_CC(float **buf_in1,float **buff ,float **buf_out, int nr, int nc)
{   //設定區域面積 大於5 留下
        const int area=5;
    int x,y,n=0,max;
    //計算用變數
        float label=0,newlabel;
        
        //set new label
        for(i=0;imf_region[L_NO])
                   {
                    mf_region[L_NO]=regionfill[i][L_NO];
                    //cout<<"regionfill["<
    taishyang
    
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-24 23:33:03 IP:218.168.xxx.xxx 未訂閱
您好: 我想您應該是要寫ccl連接元標記法吧 站上已有相關的討論文章與程式碼供您參考,程式也精簡許多    或者您也可以利用F7.F8來Trace您的程式碼    順心
akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-25 15:21:22 IP:140.135.xxx.xxx 未訂閱
感謝taishyang大大的回應~~    網路上的文章我搜尋過...上面寫的CCL都是對封閉區塊做動作..而且是對2值化以後作動作..可是我的圖記不是封閉區塊也不是2值化後的結果> < 還有一個重點是~~我還是不知道怎麼把C++轉換成BCB..    ps:想請問taishyang大大~~您的BCB是自己有興趣學的還是你們之前實驗室老師叫你們用的?....我會這樣問是因為我突然發現我跟您同學校
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-25 16:18:08 IP:210.68.xxx.xxx 未訂閱
您好:  
引言: 網路上的文章我搜尋過...上面寫的CCL都是對封閉區塊做動作..而且是對2值化以後作動作..可是我的圖記不是封閉區塊也不是2值化後的結果> < 那您程式碼的作用是? 還有一個重點是~~我還是不知道怎麼把C 轉換成BCB.. C/C 是程式語言,BCB是IDE整合環境,觀念須修正 BCB也可以寫console的程式
[file]->[New]->[other]->[console wizard]
所以您PO的程式是可以在console中RUN的(假設您程式是OK的)
ps:想請問taishyang大大~~您的BCB是自己有興趣學的還是你們之前實驗室老師叫你們用的?....我會這樣問是因為我突然發現我跟您同學校 我是看學長在用覺得很有趣,所以才踏入BCB,老師不會管你用什麼
順心
akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-25 17:25:04 IP:140.135.xxx.xxx 未訂閱
引言: 網路上的文章我搜尋過...上面寫的CCL都是對封閉區塊做動作..而且是對2值化以後作動作..可是我的圖記不是封閉區塊也不是2值化後的結果> < 那您程式碼的作用是? 我是在做失焦影像重建,先開三張同一個景像背景,不同焦點的圖,利用一些技術把每一張清晰部分設定一個灰階值,最後合成變成一張所有影像都是清晰,現在這一個程式就是要把那些灰階值不是我設定的那三張圖的灰階(經過處裡,那些不要的灰階都為0)補滿,比較靠近哪個焦點就填哪一個顏色 還有一個重點是~~我還是不知道怎麼把C 轉換成BCB.. C/C 是程式語言,BCB是IDE整合環境,觀念須修正 BCB也可以寫console的程式 我的程式在C 是可以跑的,所以他應該不會有問題~~我把它直接複製到BCB時,沒有錯誤訊息~~可是他不會執行動作> < [file]->[New]->[other]->[console wizard] 所以您PO的程式是可以在console中RUN的(假設您程式是OK的) ps:想請問taishyang大大~~您的BCB是自己有興趣學的還是你們之前實驗室老師叫你們用的?....我會這樣問是因為我突然發現我跟您同學校 我是看學長在用覺得很有趣,所以才踏入BCB,老師不會管你用什麼 那您當初是從哪本書開始入門?我程式底子可能太差!我碰BCB4個月了~~可是我覺得我好像沒有什麼進步ㄟ> <,可以麻煩前輩學長指點一下方向給我嗎 < face="Verdana, Arial, Helvetica"> 發表人 - akino0910 於 2005/11/25 17:33:21
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-25 18:13:13 IP:210.68.xxx.xxx 未訂閱
您好:  
引言: 我是在做失焦影像重建,先開三張同一個景像背景,不同焦點的圖,利用一些技術把每一張清晰部分設定一個灰階值,最後合成變成一張所有影像都是清晰,現在這一個程式就是要把那些灰階值不是我設定的那三張圖的灰階(經過處裡,那些不要的灰階都為0)補滿,比較靠近哪個焦點就填哪一個顏色 這太專業了,我沒碰影像處理已經很久了>< 我的程式在C 是可以跑的,所以他應該不會有問題~~我把它直接複製到BCB時,沒有錯誤訊息~~可是他不會執行動作> < 您指的可以跑是在VC環境中可以跑嗎? 我猜應該是BCB在console時執行畫面會一閃即逝吧... 在程式碼中加入
#include 
在main()中最後加上getch(); 
可以解決這現象
那您當初是從哪本書開始入門?我程式底子可能太差!我碰BCB4個月了~~可是我覺得我好像沒有什麼進步ㄟ> <,可以麻煩前輩學長指點一下方向給我嗎 我都是看我哪邊不懂然後去把那邊搞懂,所以書我都是跳著看的 然後我就試著回答問題當練習,還有看版上高手的文章學習 所以不是很扎實,別學我 < face="Verdana, Arial, Helvetica">
akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-28 15:22:48 IP:220.139.xxx.xxx 未訂閱
非常感謝您的幫忙~~我也不好意思直接問我寫的東西~~可是現再寫到一個關卡卻無法突破~~所以想問VC轉BCB最快的方式~~如果我問了笨問題還請您諒解 <>< face="Verdana, Arial, Helvetica">引言: 這太專業了,我沒碰影像處理已經很久了>< 那如果我有一個VC的低通濾波的程式,我要轉換成BCB..想請問前輩您會怎麼去轉換~~(不是另外寫喔...我是說把VC貼到BCB中去作執行的動作) 還有就是VC通常是執行8bit的圖,那如果在這一個低通濾波程式中我要做動作的圖是24bit,那這樣VC裡面的程式還可以用嗎? 您指的可以跑是在VC環境中可以跑嗎? 我猜應該是BCB在console時執行畫面會一閃即逝吧... 在程式碼中加入 連閃都沒有閃ㄟ@@... #include 在main()中最後加上getch(); 可以解決這現象 我在另一個程式用學長說的方式這樣寫~~直接把VC摳到BCB再加上您說的加上以上的程式~~可是依舊沒有東西...怎麼會這樣> < 我都是看我哪邊不懂然後去把那邊搞懂,所以書我都是跳著看的 然後我就試著回答問題當練習,還有看版上高手的文章學習 所以不是很扎實,別學我 您謙虛了~~看了好多大家發表的文章~~您也提供了很多的幫助^^
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-11-28 16:20:38 IP:210.68.xxx.xxx 未訂閱
您好: 您可以將專案上傳到 http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 會員求助程式檔案上傳區 讓前輩們幫您看看問題在哪邊 順心
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-11-29 03:42:10 IP:211.76.xxx.xxx 未訂閱
插個花... 如果程式沒問題的話, 先用bcb開一個console的project, 然後把code貼到bcb中,存檔後run, 注意,run的時後應該會跑出compiler的視窗, 如果沒有,就表示你的bcb有問題了, 如果run完沒有反應,但有一閃而過的console介面, 可以試試加getch()或#include <dos.h> 然後在程式的最後面加上system("pause"); 如果還是沒有一閃而過的console介面, 那麼,請你在重灌bcb或回去用vc兩條路中選一條走吧@@" (前提是程式沒問題哦) ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-11-30 22:11:40 IP:140.135.xxx.xxx 未訂閱
非常感謝大大們的回應~~ 我試了以後的結果是不會動ㄟ@@ 很奇怪~~是我用錯了嗎? 我把我C 的程式po在專案區~~希望有空的大大幫我看看~~ 它到底該如何改成BCB來呈現> < 連結: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=82076 希望有空的大大幫我去看看^^ 感激不盡~~ 發表人 - akino0910 於 2005/11/30 22:21:22
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-12-01 00:18:54 IP:218.168.xxx.xxx 未訂閱
您好:  您是不是沒有把xxx.cpp檔(您上傳的檔案)加入妳的專案中 並且從專案中移除 >
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-12-01 02:10:04 IP:140.114.xxx.xxx 未訂閱
哈囉,akino0910    幫你轉好了http://delphi.ktop.com.tw/loadfile.php?TOPICID=25692931&CC=574609 你可以參考一下步驟http://delphi.ktop.com.tw/topic.php?TOPIC_ID=82086 The first step toward proving things for yourself is to understand how others have done it before!
------


The first step toward proving things for yourself is to understand how others have done it before!

akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-12-01 17:13:46 IP:140.135.xxx.xxx 未訂閱
我剛剛去試跑的結果...跑到一半會出現如下的錯誤... < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=25701695&CC=574805"> 請問大大您跑出來會是怎樣的結果?是會跟C++處裡影像得到的結果那樣嗎? 我想各位大大們好像都誤會我的意思了~~小女子表達的不好~~真抱歉> < 我現在是把以前我寫的C++影像的程式...現在要在BCB用介面的方式來實現 例如點button他就會執行open的圖去做變化,處裡完後在呈現處裡過後的圖形在image元件 以下我將貼上我要處裡的圖形跟已經用C++處裡完後的圖形給各位大大們參考看看.. 經過處裡以後的圖形 小女子我有試著去寫BCB來呈現~~可是覺得非常麻煩,遇到很多問題 1.函式部份~~我不知道未什麼我沒有辦法像C++一樣宣告函式,所以在BCB中我把所有函式宣告全部移除..一氣喝成的寫完這一個button裡面的程式(根據C++來做改變) 2.因為我用BCB來寫是用Scanline的方式,先宣告BMP,在宣告ptr[3*j]來作執行的動作可是在這依部分的C++的程式裡面,他的i跟j會有變化,像是buff[i][j]在BCB中我可以寫成ptr2[3*j]可是當buff[i+1][j]出現時...我該如何撰寫呢> < 我陷再已經把這一個button裡面的程式撰寫完畢...沒有錯誤...可是卻不能執行,執行時會出現像是按了f8還f7一樣跳出一個好像是記憶體存址的東西,而且沒辦法去做debug的動作..怎麼會這樣? 不好意思~~一口氣問了這麼多問題~~希望各位大大們的幫忙 發表人 - akino0910 於 2005/12/01 17:41:19
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-12-01 18:52:27 IP:210.68.xxx.xxx 未訂閱
您好: 圖檔請用JPG,避免資源的浪費  
引言: 小女子我有試著去寫BCB來呈現~~可是覺得非常麻煩,遇到很多問題 1.函式部份~~我不知道未什麼我沒有辦法像C 一樣宣告函式,所以在BCB中我把所有函式宣告全部移除..一氣喝成的寫完這一個button裡面的程式(根據C 來做改變) 您所PO與上傳的程式碼都是在console mode的環境 跟BCB的UI介面一點關係也沒有呀? 2.因為我用BCB來寫是用Scanline的方式,先宣告BMP,在宣告ptr[3*j]來作執行的動作可是在這依部分的C 的程式裡面,他的i跟j會有變化,像是buff[i][j]在BCB中我可以寫成ptr2[3*j]可是當buff[i 1][j]出現時...我該如何撰寫呢> < 您上述所說的部份也沒有在您PO或上傳的程式碼中看到壓
用BCB寫UI,就不會有cout,cin...等那些只能用在console中的函數了 順心
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#17 引用回覆 回覆 發表時間:2005-12-01 19:06:35 IP:61.222.xxx.xxx 未訂閱
圖片縮小一點就可以跑囉!!    大小為420x314,應該是你記憶體配置不當< > 你可以先把圖片縮小跑跑看,應該沒問題。 不過很可惜跑出來的結果是錯誤的< > 可否請你再check一下你的演算法呢? 我想如果演算對了,要再改成> <> >
------


The first step toward proving things for yourself is to understand how others have done it before!

akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#18 引用回覆 回覆 發表時間:2005-12-07 20:15:08 IP:140.135.xxx.xxx 未訂閱
不好意思~~一直到現在才又上來看各位高手們提共給我的意見^^ 看了大大的回文~~我並不是要讓C++的程式到BCB軟體裡面跑... 我要問的是想請教大家~~我要如何把原有的C++改成用BCB的方式(就是提共介面來實現) fusung大大提供的方式雖然不是我要的~~不過又讓我學到東西~~真的是由衷的感謝^^ 這幾天我在想~~是不是能有更快的方式來得到我像要的結果(之前貼出來的圖) 一開始是想到要用距離來判定黑色pixel距離灰階值為50,100,或150哪一個比較近就填哪一個顏色...可是我卻不知該如何下手~~ 另一個想法是用
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#19 引用回覆 回覆 發表時間:2005-12-08 01:41:19 IP:140.114.xxx.xxx 未訂閱
akino0910, 幫你寫了一個簡單的GUI介面。    主要內容為Unit1.c和Unit1.h, 參考看看。 ( class="code"> Graphics::TBitmap *buf_i; Graphics::TBitmap *buf_o; Graphics::TBitmap *buff; Graphics::TBitmap *buf_oe; Graphics::TBitmap *buf_ref; Graphics::TBitmap *regionfill; (4)【下載檔案】http://delphi.ktop.com.tw/loadfile.php?TOPICID=25784327&CC=576653 (5) 影像來源和影像陣列之間的轉換可以參考這一篇,RedSnow所提供的方法。 【RGB的問題】http://delphi.ktop.com.tw/topic.php?topic_id=81154 (6) 剩下沒有寫完的部分,就請你依樣畫葫蘆填進去囉。 發表人 - fusung 於 2005/12/08 11:45:07
------


The first step toward proving things for yourself is to understand how others have done it before!

akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#20 引用回覆 回覆 發表時間:2005-12-08 22:19:06 IP:140.135.xxx.xxx 未訂閱
fusung大大,我把指標的值存到陣列去執行~~這樣寫有錯嗎? 很奇怪..我在我的程式裡面執行這個去快的程式時~~他會執行到一半就跳出..跑出像是按了f7還f8的東西出來,然後我去檢查我陣列p1[i][j]跟p2[i][j],他跑出來的數值好像是正確的ㄟ~~可是卻無法在image中表現出來> < 我現在上傳的是我把我程式裡面的button8獨立出來執行~~上傳上來請您幫我看看~~小女子感激不盡    至於您說的依樣畫葫蘆~~ㄟ~~因為我BCB真的很不熟~~看了3個月了~~我依舊抓不到重點在哪裡> <...請原諒笨蛋的我~~我是不是只要在button2裡面填入您說的那些宣告,在加入我的C++中裡面的主程式進去...然後把每個副程式都寫在您已經幫我標好的函式裡面?因為是執行24bit的圖...那我函式裡面的程式要做修正嗎? 還請您指教 以下是我上傳的專案
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#21 引用回覆 回覆 發表時間:2005-12-09 01:26:59 IP:61.222.xxx.xxx 未訂閱
【讀檔及顯示image】http://delphi.ktop.com.tw/loadfile.php?TOPICID=25798412&CC=576968 哈囉, akino0910 (1) 由於bmp1是間接讀取Image1在載入圖片時已經設定好長和寬,所以不需額外設定。 倒是bmp2要設定成和bmp1相同長和寬,你原本程式剛好跟下面兩行的等式兩邊恰好顛倒過來。
bmp2->Width=bmp1->Width;  
bmp2->Height=bmp1->Height;
(2) 由於你是灰階圖形,這樣應該就可以
bmp1->PixelFormat=pf8bit;
bmp2->PixelFormat=pf8bit;
(3) 排除演算法部分,先幫你處理讀檔及顯示image
 
for(int i=0;iHeight;i++)
     {
      ptr1 = (Byte *)bmp1->ScanLine[i];
      ptr2 = (Byte *)bmp2->ScanLine[i];
       for(int j=0;jWidth;j++)
       {
        p1[i][j] = ptr1[j];  // p1[i][j] 應該可以正確接收Image1 的影像
        p2[i][j] = p1[i][j]; // 假設p2[i][j]為處理過後的影像,當然這裡只是直接複製 p1[i][j]而已,並未經你的演算法 
        ptr2[j] = p2[i][j];  // p2[i][j]再次寫回Image2 
       }
     }
建議抽空先看一下taishyang版主發表的這一篇,會讓你少走很多冤枉路喔 【影像處理 href="http://delphi.ktop.com.tw/topic.php?topic_id=40159">http://delphi.ktop.com.tw/topic.php?topic_id=40159 繼續加油吧... <> <> >
------


The first step toward proving things for yourself is to understand how others have done it before!

akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#22 引用回覆 回覆 發表時間:2005-12-09 03:35:42 IP:61.224.xxx.xxx 未訂閱
感謝fusung大大的回應~~ 首先~~雖然那個我的圖示灰階影像~~不過他是24bit的圖...所以如果要換成24bit我便要考慮RGB3個值~~而我之前的寫法我覺得這樣好像依舊只有讀到b的值去作執行或存取的動作....我該如何表示會比較快速呢? 因為我之前的button都是處裡24bit,再加上因為RGB三個值一定都相同...所以我在處裡輸入影像時都會只有寫ptr1[3*j]去做處裡~~最後輸出結果我便會把ptr2[3*j],ptr2[3*j 1],ptr2[3*j 2]都等於某一個值 例如: if(ptr3[3*j]==(loop 1)) { label=label 1; ptr2[3*j]=label; ptr2[3*j 1]=label; ptr2[3*j 2]=label; } 在來就是演算法的部份~~改了大大說的bmp2->Width=bmp1->Width;之後,我原本這樣的寫法...去debug看p2[i][j]顯現出來的值應該是正確的...可是他總是無法執行完畢..會跳出access violation at address400B9DoD in module....等之類的警告訊號出現...是我函式位置有問題嗎?還是哪邊出了問題? 不好意思ㄧ直麻煩您~~
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#23 引用回覆 回覆 發表時間:2005-12-09 10:12:50 IP:211.21.xxx.xxx 未訂閱
akino0910    如果讀取和顯示影像部分沒問題,這樣我們可以進入下一個問題,演算法的部分 的確,你的函式有些問題,我把可疑的部分列出來。 下面這一大段<>不執行就不會跳出 > < class="code"> /* //圈選物體 影像分割 並記錄-周長 contour Max_NO=e_boundry(buf_o, buf_i , buf_oe , nr , nc , mf_region,Max_L_NO);// [副程式1] //buf_o 輸入 buf_ref 輸出 re_focus(buf_o, buf_ref, nr, nc, mf_region , Max_NO); // [副程式2] ....省略.... */ Image2->AutoSize=true; 如果e_boundry好了,再繼續往下一個副程式前進,這樣應該比較容易釐清問題所在< > 繼續加油< > The first step toward proving things for yourself is to understand how others have done it before!
------


The first step toward proving things for yourself is to understand how others have done it before!

fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#24 引用回覆 回覆 發表時間:2005-12-09 10:58:57 IP:211.21.xxx.xxx 未訂閱
錯誤回報...    
 
float *mf_region;
mf_region=(float *) malloc (512*sizeof(float *));
mf_region的大小似乎小於Max_L_NO,導致於在呼叫副程式時發生錯誤 < class="code"> //計算FILL陣列每個標記最大值 for(L_NO=1;L_NO<=Max_L_NO;L_NO ) {mf_region[L_NO]=0;} //有問題 The first step toward proving things for yourself is to understand how others have done it before!
------


The first step toward proving things for yourself is to understand how others have done it before!

akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#25 引用回覆 回覆 發表時間:2005-12-09 20:07:06 IP:220.139.xxx.xxx 未訂閱
真的非常非常感謝fusung大大一再的回應...還很仔細的幫我找出錯誤 您說您測試> < 希望 class="code"> // (1).讀取必要檔頭 nr nc 影像長寬 // Max_L_NO 最大編號數目 有幾個區域物體 int nr=384,nc=512; int Width=nc,Height=nr; int i,j; int Max_L_NO=0; int Max_NO=0; // 宣告 開存檔 動態陣列 //regionfill 陣列大小注意 float **buf_i,**buf_o,**buff,**buf_oe,**buf_ref,**regionfill; buf_i=(float **) malloc(nr*sizeof(float *)); buf_o=(float **) malloc(nr*sizeof(float *)); buff=(float **) malloc(nr*sizeof(float *)); buf_oe=(float **) malloc(nr*sizeof(float *)); buf_ref=(float **) malloc(nr*sizeof(float *)); regionfill=(float **) malloc(512*sizeof(float *)); for(int i=0;iAssign(Image6->Picture->Bitmap); bmp2->Assign(Image7->Picture->Bitmap); bmp2->Width=bmp1->Width; bmp2->Height=bmp1->Height; bmp1->PixelFormat=pf24bit; bmp2->PixelFormat=pf24bit; for(int i=0;iHeight;i ) { ptr1 = (Byte *)bmp1->ScanLine[i]; ptr2 = (Byte *)bmp2->ScanLine[i]; for(int j=0;jWidth*3;j ) { p1[i][j]=ptr1[j]; p2[i][j]=ptr2[j]; } } for(i=0;iScanLine[i]; for(j=0;jAutoSize=true; Image7->Picture->Assign(bmp2); delete bmp1; delete bmp2; free((float*)mf_region); for(i=0;i
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#26 引用回覆 回覆 發表時間:2005-12-09 22:47:05 IP:61.222.xxx.xxx 未訂閱
(1) 看來你被小問題困住,還是建議抽空先看一下taishyang版主發表的這一篇    【影像處理VI】http://delphi.ktop.com.tw/topic.php?topic_id=40159    參考裡面彩色RGB(24 bits)轉灰階(24 bits)的部分,應該會給你一些靈感。    看完我想你應該可以解決【讀取灰階(24 bits)→經過演算法→顯示灰階(24 bits)
 
for(j=0;jHeight;j++)
 {
  ptr = (Byte *)Bmp->ScanLine[j];
  for(i=0;iWidth;i++)
  {
   b=ptr[i*3];
   g=ptr[i*3+1];
   r=ptr[i*3+2];
   gray=0.299*r +0.587*g+0.114*b;
   ptr[i*3]=(Byte)gray;
   ptr[i*3+1]=(Byte)gray;
   ptr[i*3+2]=(Byte)gray;
  }
 }
(2) 另外加大BCB 預設的 stack 大小應該是可以解決你目前的窘境。< > 祝假日愉快< > The first step toward proving things for yourself is to understand how others have done it before!
------


The first step toward proving things for yourself is to understand how others have done it before!

akino0910
一般會員


發表:34
回覆:52
積分:16
註冊:2005-09-30

發送簡訊給我
#27 引用回覆 回覆 發表時間:2005-12-11 20:55:11 IP:220.137.xxx.xxx 未訂閱
報告fusung大大... 我把我自己設的矩陣p1[512][384]改成p1[384][512]以後~~圖形就跑出來了 多謝您一再的幫忙~~    真的是非常的感謝您     發表人 -
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#28 引用回覆 回覆 發表時間:2005-12-12 13:09:21 IP:140.114.xxx.xxx 未訂閱
哈囉, akino0910     恭喜你~終於解決你的問題。    教學相長,我也學到不少東西 <> <> >
------


The first step toward proving things for yourself is to understand how others have done it before!

系統時間:2024-04-28 20:09:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!