[請益] 影像處理問題

看板AndroidDev作者 (LEANSHC)時間13年前 (2011/05/05 20:41), 編輯推噓5(5025)
留言30則, 3人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 Android 看板 #1DmXbKOb ] 作者: LEANSHC (LEANSHC) 看板: Android 標題: [請益] 影像處理問題 時間: Thu May 5 11:28:16 2011 各位廣大的板友大家好 小弟是最近剛接觸android 需要用到一段程式碼 主要是要手機拍照 然後將相片分割成兩張照片 再將這兩張照片的疊合再一起 疊合的方式是將兩張照片的畫素交叉排列 目前所寫的程式碼: File file = new File("test.jpg"); if (!file.exists()) { JOptionPane.showMessageDialog(null, "File does not Exists!"); System.exit(0); } try { BufferedImage image = ImageIO.read(file); final int width = image.getWidth(); final int height = image.getHeight(); BufferedImage leftsub =image.getSubimage(0, 0, width/2, height); BufferedImage rightsub =image.getSubimage(width/2, 0, width/2, height); int leftsubwidth=leftsub.getWidth(); int leftsubheight=leftsub.getWidth(); for (int y = 0; y < leftsubheight; y++) { for (int x = 0; x < leftsubwidth; x++) { leftsub.setRGB(x,y,leftsub.getRGB(x,y)&rightsub.getRGB(x,y)); 小弟目前只想到說用&將兩張照片疊再一起 但是這結果不是我要的= = 能否請各位板友提供意見^^ 自己的經驗非常不足... 請多加指教 補充一下 目的是要讓一張圖片 ┌────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ └────────────┘ 切割成 ┌──────┐┌──────┐ │ ││ │ │ ││ │ │ L ││ R │ │ ││ │ │ ││ │ │ ││ │ └──────┘└──────┘ LLLLLLLLLLLLLL RRRRRRRRRRRRRRR (畫素排列) 接下來合成 ┌──────┐ │ │ │ │ │ │ │ │ │ │ │ │ └──────┘ LRLRLRLRLRLRLRL (畫素排列) 我目前問題點在於不知道要怎樣的程式碼去實現 原本在電腦上是用MATLAB執行 現在要轉到手機上使用 不大瞭解要如何去做 再請協助幫忙多多指點 感謝各位!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.31.67 ※ 編輯: LEANSHC 來自: 140.125.31.67 (05/05 20:43)

05/05 20:48, , 1F
目前的效果長怎樣? 你要的效果又是什麼?
05/05 20:48, 1F

05/05 22:32, , 2F
你好^^ http://ppt.cc/rzHc 這是期望的狀態
05/05 22:32, 2F
※ 編輯: LEANSHC 來自: 140.125.31.67 (05/05 22:46)

05/05 22:38, , 3F
疊合的方式是將兩張照片的畫素交叉排列
05/05 22:38, 3F

05/05 22:38, , 4F
交叉排列有:常見的有水平、垂直、棋盤格交叉三種。
05/05 22:38, 4F

05/05 22:39, , 5F
然後, leftsub.getRGB(x,y)&rightsub.getRGB(x,y)
05/05 22:39, 5F

05/05 22:39, , 6F
& 應該是邏輯運算的 AND.
05/05 22:39, 6F

05/05 22:40, , 7F
所以, 我還是不知道你要的交叉排列是什麼?
05/05 22:40, 7F

05/05 22:41, , 8F
你有學過 C/Java/Matlab 或其他程式語言嗎?
05/05 22:41, 8F

05/05 22:42, , 9F
有的話,要不要先用你熟悉的工具先做出你要的效果, 再移
05/05 22:42, 9F

05/05 22:42, , 10F
轉到 Android 開發環境上.
05/05 22:42, 10F

05/05 22:43, , 11F
另外, 你可以講一下你推文那張圖片是怎麼弄的嗎?
05/05 22:43, 11F

05/05 22:44, , 12F
你有辦法講得出來/分析出來的話,至少確保初步的概念是對
05/05 22:44, 12F

05/05 22:44, , 13F
的.
05/05 22:44, 13F
上面那張圖片 是利用MATLAB執行出來的 MATLAB程式碼 x = imread( 'L.jpg' ); y = imread( 'R.jpg' ); for num = 1:size(x,2) if mod( num ,2) ==0 x( :, num, : )=y( :,num, : ); end end imwrite(x, 'LR.jpg'); IMAGE(x); 主要是讀取兩張圖片接著做畫素疊合排列 而我現在的要的結果一樣是做畫素疊何排列 但是是要用在Android系統上 而且多了一個步驟 原本是讀取兩張圖片 改變成從一張圖片切割成兩張圖片 不知道這樣解說有清楚嗎= = 小弟剛接觸 請多指教 感謝 ※ 編輯: LEANSHC 來自: 140.125.31.67 (05/05 22:51)

05/05 22:50, , 14F
既然有補充資料, 那再說一個, 你的推文那個圖應該是兩張
05/05 22:50, 14F

05/05 22:51, , 15F
圖片交錯合在一起的吧? 跟你本文所說一張圖片分左右兩邊
05/05 22:51, 15F

05/05 22:51, , 16F
要合在一起, 有一點出入.
05/05 22:51, 16F

05/05 22:54, , 17F
推文的圖是用兩張圖片沒錯 目前有一套方式可以用一次拍攝
05/05 22:54, 17F

05/05 22:56, , 18F
就可以在照片上拍到兩張一樣的圖片 所以才加了切割的動作
05/05 22:56, 18F

05/05 22:59, , 19F
step 1: 可以取出 (0,0) 位置的 pixel value.
05/05 22:59, 19F

05/05 23:00, , 20F
step 2: 可以在 (0,0) 設定特定的 RGB 值.
05/05 23:00, 20F

05/05 23:00, , 21F
step 3: 可以取出 column 1 位置的所有 pixel value.
05/05 23:00, 21F

05/05 23:01, , 22F
step 4: 可以在 column 1 給予 n個特定的 pixel value.
05/05 23:01, 22F

05/05 23:05, , 23F
其實我看不太懂....ˊˋ
05/05 23:05, 23F

05/05 23:06, , 24F
你是說分別取兩張圖片的pixel value 還是??
05/05 23:06, 24F

05/05 23:08, , 25F
這是分解動作啊, 一次想不到整個步驟時, 就一小步一小步
05/05 23:08, 25F

05/05 23:08, , 26F
完成.
05/05 23:08, 26F

05/05 23:14, , 27F
小弟才淺...可以再詳細一點說明每個步驟嗎= =
05/05 23:14, 27F

05/22 00:00, , 28F
老實說不清楚你要的東西是要啥, 可以說清楚一點
05/22 00:00, 28F

05/22 00:05, , 29F
matlab 沒學過, 大略看起來像是偶數的x軸換成右圖
05/22 00:05, 29F

05/22 00:06, , 30F
所以改成 if (x%2 == 0){填右圖}else{填左圖}
05/22 00:06, 30F
文章代碼(AID): #1Dmfi6aI (AndroidDev)
討論串 (同標題文章)
文章代碼(AID): #1Dmfi6aI (AndroidDev)