【Python】 OpenCV에 의한 화상의 픽셀에의 액세스와 잘라내기 (초보자용)
5928 단어 Python3파이썬OpenCVmatplotlib이미지 처리
소개
OpenCV를 사용하여 이미지를 어떻게 잘라내는지 설명합니다. 일단지난번의 계속이므로, 만약 이 기사로 모르는 곳이 있으면, 봐 주세요.
환경
MacOS Mojave
파이썬 3.7
사용 이미지
다음 이미지(neko.jpg)를 사용합니다.
이미지의 크기 확인
아래 코드로 이미지의 크기를 확인할 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
print(img.shape)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다.
(900, 1600, 3)
이것은 세로가 900 픽셀, 가로가 1600 픽셀, 채널 수가 3이라는 의미입니다. 채널수는 컬러 화상의 경우는 GBR의 3개이므로, 3이 됩니다. 그레이스케일이라면, 백색의 정도만이므로, 채널수는 1이 됩니다.
이미지 좌표
Opencv에서 이미지의 좌표축은 다음과 같습니다.
위치를 (x, y)로 할 때 원점 (0,0)은 그림과 같이 왼쪽 위로 옵니다. 화상을 취급하는 경우는 아래 방향이 y축의 양의 방향이 되므로 주의해 주십시오.
이 이미지의 크기는 세로가 900픽셀, 가로가 1600픽셀이므로 이미지의 끝 픽셀의 x, y 좌표는 각각 899,1599입니다. 900, 1600이 되지 않는 이유는 원점 0부터 계산하기 때문입니다.
이미지 좌표에 액세스
이미지의 좌표를 아래와 같이 지정하면, 그 위치의 색의 값을 취득할 수 있습니다.
img = cv2.imread("neko.jpg")
print(img[450,800])
출력[153 161 190]
이는 좌표(450,800) 위치의 색이 (R,G,B) = (153,161,190)임을 나타냅니다.
또, 이하와 같이 하면 좌표를 복수 지정할 수 있게 됩니다.
print(img[450:650,800:1000])
[[[153 161 190]
[153 161 190]
[152 160 189]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[152 160 189]
[152 160 189]
[153 161 190]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[151 159 188]
[152 160 189]
[154 162 191]
...
[171 178 205]
[172 179 206]
[172 179 206]]
...
以下省略。。。
[] 안에있는 ":"는 우리가 평소 숫자의 범위를 나타낼 때 사용하는 "~"와 같다고 생각하십시오. 위의 예에서는 좌표(450,800)부터 (649,999)까지의 범위의 색 정보를 출력하고 있습니다.
임의의 위치에서 잘라내기
지정한 이미지의 범위를 다른 오브젝트에 넣으면 그 위치를 잘라낸 이미지를 얻을 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
#指定した画素をimg_trimに代入
img_trim = img[450:650,800:1000]
#色を変更
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#表示
plt.imshow(img_trim)
plt.show()
이상과 같은 이미지가 출력되면 성공입니다!
다음 번은 이미지의 확대 축소 반전 등, 반죽 돌리는 작업을 해설하고 싶습니다
Twitter하고 있습니다.
향후의 기사의 정보나 질의 응답등 여러가지 하고 싶다고 생각하므로 좋으면, 팔로우 부탁드립니다,,,!
htps : // 라고 해서 r. 코m/류지 33722052
Reference
이 문제에 관하여(【Python】 OpenCV에 의한 화상의 픽셀에의 액세스와 잘라내기 (초보자용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MacOS Mojave
파이썬 3.7
사용 이미지
다음 이미지(neko.jpg)를 사용합니다.
이미지의 크기 확인
아래 코드로 이미지의 크기를 확인할 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
print(img.shape)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다.
(900, 1600, 3)
이것은 세로가 900 픽셀, 가로가 1600 픽셀, 채널 수가 3이라는 의미입니다. 채널수는 컬러 화상의 경우는 GBR의 3개이므로, 3이 됩니다. 그레이스케일이라면, 백색의 정도만이므로, 채널수는 1이 됩니다.
이미지 좌표
Opencv에서 이미지의 좌표축은 다음과 같습니다.
위치를 (x, y)로 할 때 원점 (0,0)은 그림과 같이 왼쪽 위로 옵니다. 화상을 취급하는 경우는 아래 방향이 y축의 양의 방향이 되므로 주의해 주십시오.
이 이미지의 크기는 세로가 900픽셀, 가로가 1600픽셀이므로 이미지의 끝 픽셀의 x, y 좌표는 각각 899,1599입니다. 900, 1600이 되지 않는 이유는 원점 0부터 계산하기 때문입니다.
이미지 좌표에 액세스
이미지의 좌표를 아래와 같이 지정하면, 그 위치의 색의 값을 취득할 수 있습니다.
img = cv2.imread("neko.jpg")
print(img[450,800])
출력[153 161 190]
이는 좌표(450,800) 위치의 색이 (R,G,B) = (153,161,190)임을 나타냅니다.
또, 이하와 같이 하면 좌표를 복수 지정할 수 있게 됩니다.
print(img[450:650,800:1000])
[[[153 161 190]
[153 161 190]
[152 160 189]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[152 160 189]
[152 160 189]
[153 161 190]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[151 159 188]
[152 160 189]
[154 162 191]
...
[171 178 205]
[172 179 206]
[172 179 206]]
...
以下省略。。。
[] 안에있는 ":"는 우리가 평소 숫자의 범위를 나타낼 때 사용하는 "~"와 같다고 생각하십시오. 위의 예에서는 좌표(450,800)부터 (649,999)까지의 범위의 색 정보를 출력하고 있습니다.
임의의 위치에서 잘라내기
지정한 이미지의 범위를 다른 오브젝트에 넣으면 그 위치를 잘라낸 이미지를 얻을 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
#指定した画素をimg_trimに代入
img_trim = img[450:650,800:1000]
#色を変更
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#表示
plt.imshow(img_trim)
plt.show()
이상과 같은 이미지가 출력되면 성공입니다!
다음 번은 이미지의 확대 축소 반전 등, 반죽 돌리는 작업을 해설하고 싶습니다
Twitter하고 있습니다.
향후의 기사의 정보나 질의 응답등 여러가지 하고 싶다고 생각하므로 좋으면, 팔로우 부탁드립니다,,,!
htps : // 라고 해서 r. 코m/류지 33722052
Reference
이 문제에 관하여(【Python】 OpenCV에 의한 화상의 픽셀에의 액세스와 잘라내기 (초보자용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아래 코드로 이미지의 크기를 확인할 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
print(img.shape)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다.
(900, 1600, 3)
이것은 세로가 900 픽셀, 가로가 1600 픽셀, 채널 수가 3이라는 의미입니다. 채널수는 컬러 화상의 경우는 GBR의 3개이므로, 3이 됩니다. 그레이스케일이라면, 백색의 정도만이므로, 채널수는 1이 됩니다.
이미지 좌표
Opencv에서 이미지의 좌표축은 다음과 같습니다.
위치를 (x, y)로 할 때 원점 (0,0)은 그림과 같이 왼쪽 위로 옵니다. 화상을 취급하는 경우는 아래 방향이 y축의 양의 방향이 되므로 주의해 주십시오.
이 이미지의 크기는 세로가 900픽셀, 가로가 1600픽셀이므로 이미지의 끝 픽셀의 x, y 좌표는 각각 899,1599입니다. 900, 1600이 되지 않는 이유는 원점 0부터 계산하기 때문입니다.
이미지 좌표에 액세스
이미지의 좌표를 아래와 같이 지정하면, 그 위치의 색의 값을 취득할 수 있습니다.
img = cv2.imread("neko.jpg")
print(img[450,800])
출력[153 161 190]
이는 좌표(450,800) 위치의 색이 (R,G,B) = (153,161,190)임을 나타냅니다.
또, 이하와 같이 하면 좌표를 복수 지정할 수 있게 됩니다.
print(img[450:650,800:1000])
[[[153 161 190]
[153 161 190]
[152 160 189]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[152 160 189]
[152 160 189]
[153 161 190]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[151 159 188]
[152 160 189]
[154 162 191]
...
[171 178 205]
[172 179 206]
[172 179 206]]
...
以下省略。。。
[] 안에있는 ":"는 우리가 평소 숫자의 범위를 나타낼 때 사용하는 "~"와 같다고 생각하십시오. 위의 예에서는 좌표(450,800)부터 (649,999)까지의 범위의 색 정보를 출력하고 있습니다.
임의의 위치에서 잘라내기
지정한 이미지의 범위를 다른 오브젝트에 넣으면 그 위치를 잘라낸 이미지를 얻을 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
#指定した画素をimg_trimに代入
img_trim = img[450:650,800:1000]
#色を変更
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#表示
plt.imshow(img_trim)
plt.show()
이상과 같은 이미지가 출력되면 성공입니다!
다음 번은 이미지의 확대 축소 반전 등, 반죽 돌리는 작업을 해설하고 싶습니다
Twitter하고 있습니다.
향후의 기사의 정보나 질의 응답등 여러가지 하고 싶다고 생각하므로 좋으면, 팔로우 부탁드립니다,,,!
htps : // 라고 해서 r. 코m/류지 33722052
Reference
이 문제에 관하여(【Python】 OpenCV에 의한 화상의 픽셀에의 액세스와 잘라내기 (초보자용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이미지의 좌표를 아래와 같이 지정하면, 그 위치의 색의 값을 취득할 수 있습니다.
img = cv2.imread("neko.jpg")
print(img[450,800])
출력
[153 161 190]
이는 좌표(450,800) 위치의 색이 (R,G,B) = (153,161,190)임을 나타냅니다.
또, 이하와 같이 하면 좌표를 복수 지정할 수 있게 됩니다.
print(img[450:650,800:1000])
[[[153 161 190]
[153 161 190]
[152 160 189]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[152 160 189]
[152 160 189]
[153 161 190]
...
[169 178 205]
[169 178 205]
[169 178 205]]
[[151 159 188]
[152 160 189]
[154 162 191]
...
[171 178 205]
[172 179 206]
[172 179 206]]
...
以下省略。。。
[] 안에있는 ":"는 우리가 평소 숫자의 범위를 나타낼 때 사용하는 "~"와 같다고 생각하십시오. 위의 예에서는 좌표(450,800)부터 (649,999)까지의 범위의 색 정보를 출력하고 있습니다.
임의의 위치에서 잘라내기
지정한 이미지의 범위를 다른 오브젝트에 넣으면 그 위치를 잘라낸 이미지를 얻을 수 있습니다.
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
#指定した画素をimg_trimに代入
img_trim = img[450:650,800:1000]
#色を変更
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#表示
plt.imshow(img_trim)
plt.show()
이상과 같은 이미지가 출력되면 성공입니다!
다음 번은 이미지의 확대 축소 반전 등, 반죽 돌리는 작업을 해설하고 싶습니다
Twitter하고 있습니다.
향후의 기사의 정보나 질의 응답등 여러가지 하고 싶다고 생각하므로 좋으면, 팔로우 부탁드립니다,,,!
htps : // 라고 해서 r. 코m/류지 33722052
Reference
이 문제에 관하여(【Python】 OpenCV에 의한 화상의 픽셀에의 액세스와 잘라내기 (초보자용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("neko.jpg")
#指定した画素をimg_trimに代入
img_trim = img[450:650,800:1000]
#色を変更
img_trim = cv2.cvtColor(img_trim, cv2.COLOR_BGR2RGB)
#表示
plt.imshow(img_trim)
plt.show()
향후의 기사의 정보나 질의 응답등 여러가지 하고 싶다고 생각하므로 좋으면, 팔로우 부탁드립니다,,,!
htps : // 라고 해서 r. 코m/류지 33722052
Reference
이 문제에 관하여(【Python】 OpenCV에 의한 화상의 픽셀에의 액세스와 잘라내기 (초보자용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)