너비가 x이고 높이가 y 인 numpy 이미지가 있다고 가정 해 보겠습니다. 너비 cropx와 높이 cropy에 이미지의 가운데 부분을 잘라야합니다. cropx와 cropy가 양의 0이 아닌 정수이고 각각의 이미지 크기보다 작다고 가정 해 봅시다. 출력 이미지에 슬라이스를 적용하는 가장 좋은 방법은 무엇입니까? 이 라인을 따라농작물 가운데 numpy 이미지의 부분
7
A
답변
11
뭔가 -
def crop_center(img,cropx,cropy):
y,x = img.shape
startx = x//2-(cropx//2)
starty = y//2-(cropy//2)
return img[starty:starty+cropy,startx:startx+cropx]
샘플 실행 -
In [45]: img
Out[45]:
array([[88, 93, 42, 25, 36, 14, 59, 46, 77, 13, 52, 58],
[43, 47, 40, 48, 23, 74, 12, 33, 58, 93, 87, 87],
[54, 75, 79, 21, 15, 44, 51, 68, 28, 94, 78, 48],
[57, 46, 14, 98, 43, 76, 86, 56, 86, 88, 96, 49],
[52, 83, 13, 18, 40, 33, 11, 87, 38, 74, 23, 88],
[81, 28, 86, 89, 16, 28, 66, 67, 80, 23, 95, 98],
[46, 30, 18, 31, 73, 15, 90, 77, 71, 57, 61, 78],
[33, 58, 20, 11, 80, 25, 96, 80, 27, 40, 66, 92],
[13, 59, 77, 53, 91, 16, 47, 79, 33, 78, 25, 66],
[22, 80, 40, 24, 17, 85, 20, 70, 81, 68, 50, 80]])
In [46]: crop_center(img,4,6)
Out[46]:
array([[15, 44, 51, 68],
[43, 76, 86, 56],
[40, 33, 11, 87],
[16, 28, 66, 67],
[73, 15, 90, 77],
[80, 25, 96, 80]])
1
감사합니다, Divakar.
당신의 대답은 저에게 올바른 방향으로 가고 있습니다. 나는 '끝에서부터'를 계산하기 위해 음의 조각 오프셋을 사용했습니다.
def cropimread(crop, xcrop, ycrop, fn):
"Function to crop center of an image file"
img_pre= msc.imread(fn)
if crop:
ysize, xsize, chan = img_pre.shape
xoff = (xsize - xcrop) // 2
yoff = (ysize - ycrop) // 2
img= img_pre[yoff:-yoff,xoff:-xoff]
else:
img= img_pre
return img
몇 가지 확실하지 않은 것들이 있습니다.
- 이상한 이미지 크기 및/또는 자르기 값이 작동합니까?
- 출력 이미지의 크기는 항상 동일합니까?
건배, 거트 사용할 수
관련 문제
- 1. 이미지의 가운데 요소
- 2. numpy 배열의 분수 부분
- 3. 상단 이미지의 가운데 수직 이미지
- 4. PHP 이미지의 가운데 맞춤 텍스트
- 5. 이미지의 numpy 배열 표현을 단순화
- 6. 이미지의 OpenCV 필터링 부분
- 7. 이미지의 특정 부분 제거하기
- 8. 이미지의 특정 부분 자르기
- 9. Div 왼쪽 이미지의 부분
- 10. 이미지의 특정 부분 만보기
- 11. 옥타브에서 이미지의 100x100 픽셀의 가운데 가운데 정사각형 영역을 어떻게 선택합니까?
- 12. 가운데 맞춤 이미지의 레이아웃 상단 맞춤
- 13. H1 태그를 이미지의 왼쪽과 오른쪽에 가운데 정렬
- 14. 이미지의 특정 부분 그리기 SWT
- 15. 이미지의 특정 직사각형 부분 감지
- 16. 부분 내 이미지의 크기를 변경하십시오.
- 17. 이미지의 불투명 한 부분 매핑
- 18. numpy 배열에 부분 문자열을 포함하는 항목을 찾으십니까?
- 19. numpy 구조 배열에서 부분 일치 검색 python
- 20. CSS : 이미지의 설정된 부분 만 배경 필러로 사용할 수 있습니까?
- 21. MATLAB을 사용하는 그레이 스케일 이미지의 부분 파생
- 22. 이미지의 사용자 지정 그리기 부분 .net 012
- 23. 이미지의 특정 부분 만 응답하도록 만드시겠습니까?
- 24. 부분 투명한 이미지의 투명 영역을 클릭하십시오.
- 25. Raphael은 이미지의 선택된 부분 만 표시합니다.
- 26. 이미지의 C++ 블러 링 사각형 부분
- 27. C의 배열을 사용하여 이미지의 한 부분 바꾸기
- 28. MVC 5 - 문자열 이미지의 부분 포스트 백
- 29. 자바 스크립트에서 3D 이미지의 부분 색상을 변경합니다.
- 30. iPshoot imshow() 또는 numpy 행 선택
'//'대신'/'그들이 적어도 파이썬 3로 추측, 인덱싱 작동하지 않을 수 있습니다으로 PT 번호를 떠을 만드는 피하기 위해. x 버전. – Divakar