Python을 사진 편집 도구로 사용해보니 정말 사용하기 쉽다는 걸 느꼈습니다! !

WBOY
풀어 주다: 2023-04-13 22:10:01
앞으로
1008명이 탐색했습니다.

오늘 편집자는 이미지 처리에서 Python의 구체적인 응용 프로그램을 공유할 것입니다. 이미지 처리이므로 opencv 모듈을 언급해야 합니다. 이 모듈은 컴퓨터 비전 및 기계 학습과 관련된 많은 알고리즘을 지원하며 해당 분야는 다음과 같습니다. 나날이 확대되고 있으며 대략 다음과 같은 분야가 있습니다.

  • 물체 인식: 시각과 내부 저장소를 통한 물체 판단
  • 이미지 분할
  • 얼굴 인식
  • 안전한 자동차 운전
  • 인간-컴퓨터 상호 작용
  • 잠깐

물론 편집자는 이번에는 계획을 세우지 않았습니다. 고급 콘텐츠, 오늘은 가장 기본적인 opencv 모듈을 사용하여 이미지의 기본 작업부터 시작하겠습니다.

모듈 설치​

우리 모두는 pip 명령을 통해 모듈을 설치합니다.

pip install opencv-python
pip install opencv-contrib-python
로그인 후 복사

그림의 다양한 연산​

선형대수학을 공부해본 분들이라면 양의행렬이 낯설지 않습니다. 이미지는 본질적으로 행렬입니다. 회색조 이미지는 일반 행렬인 반면, 컬러 이미지는 다차원 행렬입니다. 이미지에 대한 연산은 자연스럽게 행렬에 대한 연산으로 변환될 수 있습니다.

이미지 읽기

먼저 cv2.imread() 메소드를 호출하여 이미지를 읽습니다. 구문 형식은 다음과 같습니다.

cv2.imread(filename, flag=1)
로그인 후 복사

플래그 매개변수는 읽기 이미지의 형식을 설정하는 데 사용되며 기본값은 1입니다. , 이는 RGB 3채널 형식으로 읽는다는 의미입니다. 0으로 설정하면 회색조 단일 채널 형식으로 읽는다는 의미입니다.

import cv2
import numpy as np
img=cv2.imread('1.jpg', 0)
로그인 후 복사

이미지 표시

이미지를 읽은 후 표시할 수 있기를 바랍니다. 여기서 사용된 함수 메소드는 cv2.imshow() 입니다. 구문 형식은 다음과 같습니다

cv2.imshow(name, img)
로그인 후 복사

매개 변수 설명은 다음과 같습니다.

  • name: 표시 창의 이름을 나타냅니다.
  • img: 이미지의 행렬 형식

위에서 읽은 이미지를 표시하려고 하는데 코드는 다음과 같습니다

cv2.imshow("grey_img", img)
## 如果使用了cv2.imshow()函数,下面一定要跟着一个摧毁窗口的函数
cv2.destroyAllWindows()
로그인 후 복사

위 코드를 실행하면 순간적으로 이미지가 나타나는 것을 볼 수 있지만, 우리를 기다리지 않았습니다. 그 이유는 cv2.imshow() 함수 메소드에 지연 기능이 없기 때문입니다. 코드는 다음과 같습니다

import cv2
import numpy as np


img = cv2.imread('1.jpg')
cv2.imshow("grey_img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
로그인 후 복사

output

Python을 사진 편집 도구로 사용해보니 정말 사용하기 쉽다는 걸 느꼈습니다! !

사진 저장

마지막으로 여기에 사용된 함수는 cv2.imwrite() 입니다. 구문 형식은 다음과 같습니다

cv2.imwrite(imgname, img)
로그인 후 복사

매개 변수 설명은 다음과 같습니다.

  • imgname: 저장할 이미지 이름
  • img: 이미지 행렬 형식의 샘플 코드

는 다음과 같습니다.

import cv2
import numpy as np


img = cv2.imread('1.jpg')
cv2.imshow("grey_img", img)
cv2.waitKey(0)
cv2.imwrite('1.png', img)
cv2.destroyAllWindows()
로그인 후 복사

그림의 다양한 속성

때때로 우리는 그림의 픽셀 크기를 알고 싶을 때가 있는데, 그림의 본질은 행렬입니다. 예를 들어, 1024픽셀 * 960픽셀의 그림은 단지 행렬의 행 개수가 960이고 열 개수가 1024라는 뜻입니다. opencv 모듈에서 호출되는 Shape() 함수 메서드에는 다음과 같은 코드가 있습니다.

import cv2


img = cv2.imread('1.jpg')
print(img.shape[0]) # 行数
print(img.shape[1]) # 列数
print(img.shape[2]) # 通道数
로그인 후 복사

output

308
340
3
로그인 후 복사

이미지의 픽셀은 340*380이고 채널 수는 3개임을 알 수 있습니다. 회색조 이미지의 경우 이미지의 속성을 살펴보겠습니다.

img = cv2.imread('1_grey.png', 0)
print(img.shape)
로그인 후 복사

output

(308, 340)
로그인 후 복사

회색조 이미지의 경우 채널 번호는 표시되지 않고 행과 열의 개수만 표시되는 것을 볼 수 있습니다

이미지에 대한 기본 작업

마지막으로 이미지에 대해 몇 가지 기본 작업을 수행합니다. 빈 그림을 가져와 그 안에 검은색 점을 추가하면 코드는 다음과 같습니다

import cv2
import numpy as np


img = cv2.imread('2.jpg')
(x, y, z) = img.shape


for i in range(-10, 10):
for j in range(-10, 10):
# Python을 사진 편집 도구로 사용해보니 정말 사용하기 쉽다는 걸 느꼈습니다! !的正中心的位置来改变像素值,
img[int(x/2) + i, int(y/2) + j] = (0, 0, 0)


cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
로그인 후 복사

output

Python을 사진 편집 도구로 사용해보니 정말 사용하기 쉽다는 걸 느꼈습니다! !

위 내용은 Python을 사진 편집 도구로 사용해보니 정말 사용하기 쉽다는 걸 느꼈습니다! !의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!