Re: [問題] 新手發問-計算像素點數

看板C_and_CPP (C/C++)作者 (鬼翼&娃娃魚)時間16年前 (2009/06/15 22:47), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《luandrew (阿咪)》之銘言: : 這樣顯示出來的黑點跟白點數字好怪 : 好相近..是哪裡出錯了? : 要在哪裡加質心公式? 老實說吧, 看起來顯然您不太會寫程式.... 就看您照搬學姐那兩行就知道.... 您不懂學姐程式的邏輯, 也不懂您搬了什麼.... == #define WIDTH 8 #define HEIGHT 6 int gray[HEIGHT][WIDTH] = { {0, 0, 0, 0, 1, 1, 0, 0, }, {0, 0, 0, 0, 1, 1, 1, 0, }, {1, 1, 1, 1, 1, 1, 1, 1, }, {1, 1, 1, 1, 1, 1, 1, 1, }, {0, 0, 0, 0, 1, 1, 1, 0, }, {0, 0, 0, 0, 1, 1, 0, 0, }, } 請問您, 有沒有辦法寫一個簡單的程式統計上面gray陣列有幾個0有幾個1?? 上面這個sample裡, 您需要懂得基本對二維陣列依序存取.... 您需要懂得巢狀迴圈的使用, 您需要懂得做條件判斷.... 當然, 變數宣告, 給值, ++, 等等更基本的東西更是不用說了.... 如果上面這些都懂而且會寫, 二值化基本上就不是什麼問題.... 它也是"依序取值"->"判斷"->"該陣列元素的值"這樣的流程.... == 算黑區與白區的中心呢??這或許跟數學算三角形什麼的質心不太相同.... 就直接寫個例子吧, 先決條件是我這邊寫的質心沒有誤解您要求的東西.... 0 0 1 1 0 0 0 0 假設最左上角那個位置為(0, 0) 0 0 1 1 0 0 0 0 右下角那點座標就會是(7, 1) 數字是 1 的區域中心點在哪??是不是把 1 的座標累加最後除以 1 的點數就好?? 1: (2, 0), (3, 0), (2, 1), (3, 1) => 共 4 點 質心: ( (2+3 + 2+3) / 4, (0+1 + 0+1)/4 ) = (2.5, 0.5) 理由自己推吧 數字是 0 的區域中心點呢??是不是可以用類似的方法推算出來?? 會推算了, 能夠把我一開始給的gray的 0 與 1 的質心分別找出來嗎?? 這邊假設還不考慮 0 要分成左邊那區和右邊那區這個問題.... 如果您也需要做到這點(忘了影像處理裡叫什麼了) 那小弟我覺得, 要在板上這樣慢慢教恐怕得花費相當大的功夫.... 不如您自己去找本影像處理入門的書好好翻一翻學一學吧.... 順代一提, 作標我寫(x, y), 可是陣列我用[y][x]的形式也是有理由的.... 這可能是coding時影像處理常用的作法, 也是您用BCB6寫時可能碰到的.... == 如果您還是用BCB6開發程式, 就不要想有什麼元件可以做到您的需求.... BCB6原生提供給您的而您目前比較用得到的.... 只有最主要的C/C++環境 - 讓您設計演算法實作您需要的功能 Window Form - 讓您快速的建立一個視窗, 甚至加些menu功能紐等.... 還有TImage, TBitmap相關的元件 - 讓您簡單的顯示圖片在螢幕上與load/save圖檔 當然, 還有build code, debugger, help等等IDE通常都有的東西.... 什麼情況下您可能找到現有的元件可以直接完成您要做的這些事情?? 剛好網路上讓您找到有人寫過同樣/類似的作業剛好可以讓您"參考".... 再不然就是更明白了當的去找作業代寫, 甚至是code job板吧.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.41.17.189

06/15 22:52, , 1F
剛發現原po沒有限定用6, 好吧, 我想2009也不會有....Orz
06/15 22:52, 1F

06/15 22:59, , 2F
是用6.0作.就猶如K大猜的.我是急著要生出東西.用碰都沒碰
06/15 22:59, 2F

06/15 22:59, , 3F
過的東西.要寫出來.唉...我知道這很困難.我也很懊惱.悶..
06/15 22:59, 3F

06/15 23:00, , 4F
不過最後還是謝謝V大跟K大.以後還煩請你們兩個多多指教.
06/15 23:00, 4F

06/15 23:17, , 5F
我忘記有Canvas->Pixels[][]可以用了Orz, 所以我的陣列
06/15 23:17, 5F

06/15 23:18, , 6F
gray[HEIGHT][WIDTH]為什麼H, W反過來就先別理會了Orz
06/15 23:18, 6F

06/15 23:18, , 7F
不過我記得用ScanLine會快很多, 所以早晚要去學的XD
06/15 23:18, 7F
文章代碼(AID): #1ADbyLEr (C_and_CPP)
文章代碼(AID): #1ADbyLEr (C_and_CPP)