[請問]有關程式與圖片方面的問題!

假設,
今天有一張圖片a與一張圖片b
圖片b是由圖片a的某一個區塊所截取下來的!
那麼,我想透過一個程式去判斷b是在a的那一個區域裡?

不曉得這樣的程式該由何種語言去撰寫?
有那些語言可以去處理圖片的?

不好意思,小弟所學不多,實在想不到圖片的處理該使用何種語言…
但是最近偏偏對這方面有些興趣,
想找本書好下手...

麻煩各位大大為我解答一下好嗎?^^
((有好書可以推的更是感激不盡…))
2006-08-10 19:14 發佈
什麼語言都可以implement

看你會那種(我自己用過C, C++/CLI, Matlab...)

我老師是不管我會哪種

他只會用國語叫我作

然後你還需一點點要image processing & pattern match的知識...

如果沒有的話

看看岡薩雷茲先生寫的Digtal Image Processing聖經吧!

hcwang1126 wrote:

然後你還需一點點要image processing & pattern match的知識...

如果沒有的話

看看岡薩雷茲先生寫的Digtal Image Processing聖經吧!


感謝大大的回應!

關於image processing 與pattern match方面的知識...

我可以說是幾乎完全沒有= =||

剛剛上了google查了一下Digtal Image Processing聖經,

似乎查不到相關的內容,

可以麻煩大大告知是那一個出版社的嗎?

還是還有相關的書籍?!
★這傢洗艾台玩啦!☆
先把圖片想像成一個非常長的陣列。

圖片a是一個大陣列,圖片b是一個小陣列。

把小陣列拿到大陣列開始比較,從第1個開始比,

一直比到符合的地方,接下來就知道位置囉。

小弟比較不懂的是,該如何把圖片輸入到程式中作處理?!

jokkson大說的方式小弟大致上能了解…

但是對於完全沒接觸過這方面(程式處理圖片)的我,

實在無法想像該如何輸入?該如何處理?該如何輸出?

要先編碼化嗎?變成數字or文字後再進去跑程式作處理嗎?

還是說有其它方式直接讓程式去辯別、判斷圖片?
★這傢洗艾台玩啦!☆
不要把圖當圖看
那是人的觀點
電腦很笨
只看的懂0101
這樣點的夠明了嗎
以下範例程式來自Microsof MSDN

我貼的是VB.NET版的。

我大略講解一下:
1.先把圖片載入
2.把圖片轉換成一維陣列
3.把陣列Copy到memory
4.再memory中處理陣列,此範例是把RGB其中一種顏色顯示出來(1張圖片是由RGB這3色組成的)
5.處理完後把陣列從記憶體中丟出來


你需要做的事就是在第4步驟上動手腳,就是你想要做的圖片比較。

P.S 為何要丟到記憶體處理完再丟出來呢?因為速度會加速非常的快。
如果你直接處理的話,圖一大就會很慢很慢(取決於你的CPU)
--------------------------------------------------------------

Private Sub LockUnlockBitsExample(ByVal e As PaintEventArgs)

' Create a new bitmap.
Dim bmp As New Bitmap("c:\fakePhoto.jpg")

' Lock the bitmap's bits.
Dim rect As New Rectangle(0, 0, bmp.Width, bmp.Height)
Dim bmpData As System.Drawing.Imaging.BitmapData = bmp.LockBits(rect, _
Drawing.Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat)

' Get the address of the first line.
Dim ptr As IntPtr = bmpData.Scan0

' Declare an array to hold the bytes of the bitmap.
' This code is specific to a bitmap with 24 bits per pixels.
Dim bytes As Integer = bmp.Width * bmp.Height * 3
Dim rgbValues(bytes - 1) As Byte

' Copy the RGB values into the array.
System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes)

' Set every red value to 255.
For counter As Integer = 0 To rgbValues.Length - 1 Step 3
rgbValues(counter) = 255
Next

' Copy the RGB values back to the bitmap
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes)

' Unlock the bits.
bmp.UnlockBits(bmpData)

' Draw the modified image.
e.Graphics.DrawImage(bmp, 0, 150)

End Sub
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?