N 포인트의 Nx2 배열 ([row, col])이 주어지면 :
points = np.array([
[r1, c1],
[r2, c2],
...
])
그리고 내가 작업하고 싶은 2D 매트릭스가 주어지면 :
img = np.arange(400).reshape(20,20)
img
인덱스 를 사용하여 2D 조각을 가져 오는 효율적인 방법을 찾고 있습니다 .
따라서 주어진 높이 h
와 너비 의 슬라이스를 원한다면 w
의사 코드는 다음과 같습니다.
p_rows = points[:,0]
p_cols = points[:,1]
patches = img[p_rows:p_rows+h, p_cols:p_cols+w]
결과는 Nxhxw 행렬이됩니다. 그러나 아아, 이번에는 방송이 저를 구하지 못했습니다.
내가 검토 한 결과 np.r_
, np.select
, np.lib.stride_tricks.as_strided
, np.take
...하지만 아직 운이 없습니다.
우리는 슬라이딩 윈도우를 얻기 위해 np.lib.stride_tricks.as_strided
기반 scikit-image's view_as_windows
을 활용할 수 있습니다 . 사용에 대한 자세한 정보는의 as_strided
기반view_as_windows
. 그런 다음 해당 인덱스를 사용하여 고급 인덱싱으로 해당 창으로 인덱싱하면 points
문제가 해결됩니다!
from skimage.util.shape import view_as_windows
w = view_as_windows(img,(h,w))
out = w[points[:,0],points[:,1]]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다