程式轉換問題 |
尚未結案
|
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
主程式部分是以下
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 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您好:
引言: 網路上的文章我搜尋過...上面寫的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 發送簡訊給我 |
引言: 網路上的文章我搜尋過...上面寫的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 發送簡訊給我 |
您好:
引言: 我是在做失焦影像重建,先開三張同一個景像背景,不同焦點的圖,利用一些技術把每一張清晰部分設定一個灰階值,最後合成變成一張所有影像都是清晰,現在這一個程式就是要把那些灰階值不是我設定的那三張圖的灰階(經過處裡,那些不要的灰階都為0)補滿,比較靠近哪個焦點就填哪一個顏色 這太專業了,我沒碰影像處理已經很久了>< 我的程式在C 是可以跑的,所以他應該不會有問題~~我把它直接複製到BCB時,沒有錯誤訊息~~可是他不會執行動作> < 您指的可以跑是在VC環境中可以跑嗎? 我猜應該是BCB在console時執行畫面會一閃即逝吧... 在程式碼中加入#include那您當初是從哪本書開始入門?我程式底子可能太差!我碰BCB4個月了~~可是我覺得我好像沒有什麼進步ㄟ> <,可以麻煩前輩學長指點一下方向給我嗎 我都是看我哪邊不懂然後去把那邊搞懂,所以書我都是跳著看的 然後我就試著回答問題當練習,還有看版上高手的文章學習 所以不是很扎實,別學我> >>< face="Verdana, Arial, Helvetica"> |
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
非常感謝您的幫忙~~我也不好意思直接問我寫的東西~~可是現再寫到一個關卡卻無法突破~~所以想問VC轉BCB最快的方式~~如果我問了笨問題還請您諒解
>
<>< face="Verdana, Arial, Helvetica">引言:
這太專業了,我沒碰影像處理已經很久了><
那如果我有一個VC的低通濾波的程式,我要轉換成BCB..想請問前輩您會怎麼去轉換~~(不是另外寫喔...我是說把VC貼到BCB中去作執行的動作)
還有就是VC通常是執行8bit的圖,那如果在這一個低通濾波程式中我要做動作的圖是24bit,那這樣VC裡面的程式還可以用嗎? 您指的可以跑是在VC環境中可以跑嗎?
我猜應該是BCB在console時執行畫面會一閃即逝吧...
在程式碼中加入
連閃都沒有閃ㄟ@@... #include
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您好:
您可以將專案上傳到
http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97
會員求助程式檔案上傳區 讓前輩們幫您看看問題在哪邊 順心
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
插個花...
如果程式沒問題的話,
先用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 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
哈囉,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 發送簡訊給我 |
我剛剛去試跑的結果...跑到一半會出現如下的錯誤...
< 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 發送簡訊給我 |
您好:
圖檔請用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 發送簡訊給我 |
|
akino0910
一般會員 發表:34 回覆:52 積分:16 註冊:2005-09-30 發送簡訊給我 |
不好意思~~一直到現在才又上來看各位高手們提共給我的意見^^
看了大大的回文~~我並不是要讓C++的程式到BCB軟體裡面跑...
我要問的是想請教大家~~我要如何把原有的C++改成用BCB的方式(就是提共介面來實現)
fusung大大提供的方式雖然不是我要的~~不過又讓我學到東西~~真的是由衷的感謝^^
這幾天我在想~~是不是能有更快的方式來得到我像要的結果(之前貼出來的圖)
一開始是想到要用距離來判定黑色pixel距離灰階值為50,100,或150哪一個比較近就填哪一個顏色...可是我卻不知該如何下手~~
另一個想法是用
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
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 發送簡訊給我 |
fusung大大,我把指標的值存到陣列去執行~~這樣寫有錯嗎?
很奇怪..我在我的程式裡面執行這個去快的程式時~~他會執行到一半就跳出..跑出像是按了f7還f8的東西出來,然後我去檢查我陣列p1[i][j]跟p2[i][j],他跑出來的數值好像是正確的ㄟ~~可是卻無法在image中表現出來> <
我現在上傳的是我把我程式裡面的button8獨立出來執行~~上傳上來請您幫我看看~~小女子感激不盡 至於您說的依樣畫葫蘆~~ㄟ~~因為我BCB真的很不熟~~看了3個月了~~我依舊抓不到重點在哪裡> <...請原諒笨蛋的我~~我是不是只要在button2裡面填入您說的那些宣告,在加入我的C++中裡面的主程式進去...然後把每個副程式都寫在您已經幫我標好的函式裡面?因為是執行24bit的圖...那我函式裡面的程式要做修正嗎?
還請您指教
以下是我上傳的專案
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
【讀檔及顯示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;i建議抽空先看一下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 發送簡訊給我 |
感謝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 發送簡訊給我 |
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 發送簡訊給我 |
錯誤回報...
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 發送簡訊給我 |
真的非常非常感謝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;i
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
(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;j(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 發送簡訊給我 |
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |