OpenCV 및 Python을 사용하는 만화 필터
소개
안녕하세요! 이 튜토리얼에서는 모든 이미지에 간단한 만화 필터를 적용하는 방법을 보여줍니다 😃
환경 준비
먼저 다음을 통해 수행할 수 있는 Python 가상 환경을 시작해야 합니다.
python3 -m venv env
source env/bin/activate
종속성 설치
requirements.txt 파일을 만들고 다음을 추가합니다.
# requirements.txt
opencv-python
그런 다음 다음을 통해 설치하십시오.
pip install -r requirements.txt
소스 코드 작성
필요한 모듈 가져오기
import argparse
import cv2
만화 효과를 적용하는 함수 작성
def cartoonize (image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurImage = cv2.medianBlur(image, 1)
edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9)
color = cv2.bilateralFilter(image, 9, 200, 200)
cartoon = cv2.bitwise_and(color, color, mask = edges)
return cartoon
이 함수는 기본적으로 이미지를 가져와 만화 스타일 필터를 이미지에 적용한 다음 반환합니다.
중간 파란색은 이미지의 노이즈를 줄이는 데 가장 효과적입니다.
Adaptive Thresholding은 이미지의 잘못된 예측 및 조명 문제를 극복하는 데 사용됩니다.
양방향 필터는 이미지에 대한 가장자리 보존 및 평활화 필터입니다.
마지막으로 bitwise_and를 통해 이미지에 필터를 적용합니다.
마지막으로 메인 함수를 작성해야 합니다.
if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True, help = "Path to input file")
args = vars(ap.parse_args())
image = cv2.imread(args["image"])
cartoonImage = cartoonize(image)
cv2.imwrite("output.jpg", cartoonImage)
cv2.imshow("output", cartoonImage)
cv2.waitKey(0)
cv2.destroyAllWindows()
여기서 우리가 하는 일은 기본적으로 명령줄에서 이미지 인수를 구문 분석하고 만화 필터를 적용한 다음 출력을 파일에 쓴 다음 출력을 사용자에게 표시하는 것입니다.
그런 다음 모든 키를 수신한 다음 창을 정리합니다.
프로그램 실행
이 프로그램은 다음을 통해 실행할 수 있습니다.
python main.py -i original.jpg
모두 잘 진행되면 다음과 같은 결과가 표시됩니다.
샘플 이미지는 영국 내 고향에서 가져온 것입니다. 😎
결론
여기서는 필터와 같은 간단한 만화를 이미지에 적용하는 방법을 보여 드렸습니다. 자유롭게 자신의 이미지를 실험하고 더 많은 필터를 포함하도록 확장할 수도 있습니다. 😀
행복한 코딩!
내가 일하는 것처럼? 다양한 주제에 대해 포스팅하고 있으니 더 보고 싶으시면 좋아요와 팔로우 부탁드립니다.
또한 저는 커피를 좋아합니다.
Reference
이 문제에 관하여(OpenCV 및 Python을 사용하는 만화 필터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ethand91/cartoon-filter-using-opencv-and-python-3nj5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)