일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- mariadb
- DFS
- GT-S80
- 삼성소프트웨어멤버십
- Lotto
- Splunk
- dataframe
- install
- ipad
- pandas
- SciPy
- GitHub
- Numpy
- Button
- keras
- LSTM
- Series
- E-P1
- 알고리즘
- index
- CNN
- pycharm
- imread
- SPL
- mean
- synology
- Python
- pip
- RNN
- javascript
Archives
- Today
- Total
잠토의 잠망경
[OpenCV] 사진 읽고 쓰기 본문
사진 화면에 보이기
임의의 사진을 화면에 띄우기
import cv2
imageFile='./file.jpg'
img1_style = cv2.imread(imageFile, cv2.IMREAD_COLOR) # normal
img2_style = cv2.imread(imageFile,cv2.IMREAD_GRAYSCALE) # Gray
cv2.imshow('normal', img1_style)
cv2.imshow('gray', img2_style)
cv2.waitKey()
cv2.destoryAllWindows()
Imread flag
flag | Discription |
---|---|
cv2.IMREAD_COLOR | color, Default, 투명 무시 |
cv2.IMREAD_GRAYSCALE | Gray로 읽음 |
cv2.IMREAD_UNCHANGED | alpha Channel 포함 |
Image 저장(Extension)
저장방법
포맷 | flag | 범주 | 내용 |
---|---|---|---|
PNG | cv2.IMWRITE_PNG_COMPRESSION | 0~9 | 압축율, 숫자가 크면 높은 압축, 시간 오래 걸림 |
JPEG | cv2.IMWRITE_JPEG_QUALITY | 0~100 | 품질, 높을 수록 품질 좋음 |
import cv2
imageFile = 'image.jpg'
img1_style = cv2.imread(imageFile)
cv2.imwrite('image.bmp', img1_style)
cv2.imwrite('image.png', img1_style)
cv2.imwrite('image.png', img1_style, [cv2.IMWRITE_PNG_COMPRESSION, 9]) #0 ~9, 압축율
cv2.imwrite('image.jpg', img1_style, [cv2.IMWRITE_JPEG_QUALITY, 10]) #0~100 품질
matplotlib에 사진 띄우기
Image 보여주는 방식
item | 형식 |
---|---|
opencv | BGR |
Matplotlib | RGB |
BGR 방식
import cv2
imageFile = 'image.jpg'
image1_style = cv2.imread(imageFile)
from matplotlib imprt pyplot as plt
plt.axis('off')
#plt.xticks([]) 위에와 같음
#plt.yticks([])
plt.imshow(image1_style)
plt.show()
BGR To RGB 변환
opencv 는 BGR방식으로 인하여 RGB로 변경해야 matplotlib에 정상적으로 표현된다.
RGB 방식 변경
import cv2
imageFile = 'image.jpg'
image1_style = cv2.imread(imageFile)
B, G, R = cv2.split(image1_style)
img2_style = cv2.merge([B,G,R])
# img2_style = cv2.cvtColor(img2_style, cv2.COLOR_BGR2RGB)
# 위에 내용과 동일한 CODE이다.
from matplotlib imprt pyplot as plt
plt.axis('off')
#plt.xticks([]) 위에와 같음
#plt.yticks([])
plt.imshow(image2_style)
plt.show()
여러 이미지 격자로 생성하기(matplotlib)
matplotlib를 활용하여 구현할 수 있다.
import cv2
from matplotlib import pyplot as plt
imgList=[]
for i in list(range(1,5)):
tempImage = cv2.imread('{}.jpg'.format(i))
imgList.append(cv2.cvtColor(tempImage, cv2.COLOR_BGR2RGB))
fig, ax = plt.subplots(2,2, figsize(10,10), sharey=True)
fig.canvas.set_window_title('sample picture')
for i in list(range(2)):
for j in list(range(2)):
ax[i][j].axis('off')
a[i][j].imshow(imgList[2*i+j], aspect='auto')
plt.subplots_adjust(left=0, bottom=0, right=1, top=1, wsapce=0.05, hspace=0.05)
plt.savefig('000.png', bbox_inches='tight')
plt.show()
Comments