나는 중간 필터를 위해 파이썬 프로그램을 만들려고합니다. 이 기사는 http://www.programming-techniques.com/2013/02/median-filter-using-c-and-opencv-image.html이므로 파이썬 코드로 변환하려고합니다. 파이썬과 OpenCV로 메디안 필터
이이 중간 필터 전에 사진입니다
from cv2 import * #Import functions from OpenCV
import cv2
if __name__ == '__main__':
source = cv2.imread("Medianfilterp.png", CV_LOAD_IMAGE_GRAYSCALE)
final = source[:]
for y in range(len(source)):
for x in range(y):
final[y,x]=source[y,x]
members=[source[0,0]]*9
for y in range(1,len(source)-1):
for x in range(1,y-1):
members[0] = source[y-1,x-1]
members[1] = source[y,x-1]
members[2] = source[y+1,x-1]
members[3] = source[y-1,x]
members[4] = source[y,x]
members[5] = source[y+1,x]
members[6] = source[y-1,x+1]
members[7] = source[y,x+1]
members[8] = source[y+1,x+1]
members.sort()
final[y,x]=members[4]
cv.NamedWindow('Source_Picture', cv.CV_WINDOW_AUTOSIZE)
cv.NamedWindow('Final_Picture', cv.CV_WINDOW_AUTOSIZE)
cv2.imshow('Source_Picture', source) #Show the image
cv2.imshow('Final_Picture', final) #Show the image
cv2.waitKey()
파이썬 코드
:그러나 나는 가지고 이상한 결과, 프로그램의 결과 :
그냥 함수를 호출하는 것이 아니라 메디안 필터를 수행하는 방법을 배우고 싶습니다. 고마워 .. 나는 그걸 알아 차리지 못했다. 하 .. 하 .. .. 내 문제를 해결하지만, 새로운 문제가 생겼어. 사진을 반쯤 자르면, 밖의 목록이 나온다. 왜 그런지 알아? –
@mas_bejo 아마 별 문제를 해결하면 가장 잘 해결할 수 있습니다. 새로운 문제는 좀 더 설명이 필요하며 댓글은 실제로 그런 부분이 아닙니다. – Aurelius
도움 주셔서 감사합니다. 나는 그 후자에 관한 질문을 게시 할 것입니다 ... –