問題描述
當(dāng)我開始使用 python 實(shí)現(xiàn)一個(gè)滑動(dòng)窗口來檢測(cè)靜止圖像中的對(duì)象時(shí),我開始了解這個(gè)不錯(cuò)的功能:
As I get to implement a sliding window using python to detect objects in still images, I get to know the nice function:
numpy.lib.stride_tricks.as_strided
所以我嘗試制定一個(gè)通用規(guī)則,以避免在更改我需要的滑動(dòng)窗口大小時(shí)可能會(huì)失敗的錯(cuò)誤.最后我得到了這個(gè)表示:
So I tried to achieve a general rule to avoid mistakes I may fail in while changing the size of the sliding windows I need. Finally I got this representation:
all_windows = as_strided(x,((x.shape[0] - xsize)/xstep ,(x.shape[1] - ysize)/ystep ,xsize,ysize), (x.strides[0]*xstep,x.strides[1]*ystep,x.strides[0],x.strides[1])
這會(huì)產(chǎn)生一個(gè) 4 暗矩陣.前兩個(gè)代表圖像的 x 和 y 軸上的窗口數(shù).其他的代表窗口的大小(xsize,ysize)
which results in a 4 dim matrix. The first two represents the number of windows on the x and y axis of the image. and the others represent the size of the window (xsize,ysize)
step
代表兩個(gè)連續(xù)窗口之間的位移.
and the step
represents the displacement from between two consecutive windows.
如果我選擇方形滑動(dòng)窗口,這種表示效果很好.但我仍然有一個(gè)問題要讓它適用于 e.x. 的 Windows.(128,64),我通常會(huì)在其中獲得與圖像無關(guān)的數(shù)據(jù).
This representation works fine if I choose a squared sliding windows. but still I have a problem in getting this to work for windows of e.x. (128,64), where I get usually unrelated data to the image.
我的代碼有什么問題.有任何想法嗎?是否有更好的方法在 python 中讓滑動(dòng)窗口美觀整潔地進(jìn)行圖像處理?
What is wrong my code. Any ideas? and if there is a better way to get a sliding windows nice and neat in python for image processing?
謝謝
推薦答案
查看這個(gè)問題的答案:使用步幅實(shí)現(xiàn)高效的移動(dòng)平均濾波器.基本上跨步不是一個(gè)很好的選擇,盡管它們有效.
Check out the answers to this question: Using strides for an efficient moving average filter. Basically strides are not a great option, although they work.
這篇關(guān)于在numpy中使用as_strided函數(shù)的滑動(dòng)窗口?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!