티스토리 뷰
이미지 dehazing 성공
수중 사진도 깨끗하게 처리되네
import cv2
import math
import numpy as np
import sys
def apply_mask(matrix, mask, fill_value):
#print("MATRIX=", matrix)
#print("mask=\n" ,mask)
#print("fill value=\n", fill_value)
masked = np.ma.array(matrix, mask=mask, fill_value=fill_value)
#print('MASKED=',masked)
return masked.filled()
def apply_threshold(matrix, low_value=255, high_value=255):
low_mask = matrix < low_value
#print("low mask=",low_mask)
matrix = apply_mask(matrix, low_mask, low_value)
#print('Low MASK->',low_mask,'\nMatrix->',matrix)
high_mask = matrix > high_value
matrix = apply_mask(matrix, high_mask, high_value)
return matrix
def simplest_cb(img, percent):
assert img.shape[2] == 3
assert percent > 0 and percent < 100
#print("shape of image = ", img.shape[2])
half_percent = percent / 200.0
#print('HALF PERCENT->',half_percent)
channels = cv2.split(img)
#print('Channels->\n',channels)
#print('Shape->',channels[0].shape)
#print('Shape of channels->',len(channels[2]))
out_channels = []
for channel in channels:
assert len(channel.shape) == 2
# find the low and high precentile values (based on the input percentile)
height, width = channel.shape
vec_size = width * height
flat = channel.reshape(vec_size)
#print('vec=',vec_size,'\nFlat=',flat)
assert len(flat.shape) == 1
flat = np.sort(flat)
n_cols = flat.shape[0]
#print("Number of columns = ", n_cols)
low_val = flat[math.floor(n_cols * half_percent)]
high_val = flat[math.ceil( n_cols * (1.0 - half_percent))]
#print("Lowval: ", low_val)
#print("Highval: ", high_val)
#print(flat[60])
#print(flat[11940])
# saturate below the low percentile and above the high percentile
thresholded = apply_threshold(channel, low_val, high_val)
# scale the channel
normalized = cv2.normalize(thresholded, thresholded.copy(), 0, 255, cv2.NORM_MINMAX)
out_channels.append(normalized)
return cv2.merge(out_channels)
if __name__ == '__main__':
img = cv2.imread('2a.jpg')
out = simplest_cb(img, 1)
cv2.imshow("Before", img)
cv2.imshow("After", out)
cv2.waitKey(0)
'머신러닝 > DeHaze' 카테고리의 다른 글
video realtime image dehazing (0) | 2023.05.28 |
---|---|
환경설정 (0) | 2023.05.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 삼성 네 제로 홈
- 아이튜버크리에이터
- 공격표면 관리 최소화 방안
- 5G
- 물류로봇 시장 동향
- 마이헬스웨이
- IoT 보안 대응
- lot 동향
- 6G
- lot 센서 케이블 관리
- IoT 보안 이슈
- 디지털 휴먼 기술
- 지능형 IoT 보안
- 리얼VR피싱
- 공격표면 관리 최신 동향
- 가트너 2023 전략기술
- 디지털 휴먼의 발전 단계
- 의료마이데이터
- 공격표면 관리 개념
- 사이버공격 대응 전략
- IoT 안전 이용환경
- 가트너 2023
- 디지털 휴먼
- ls전선 전선관제
- 공격표면관리
- 사이버저
- 가트너 전략기술
- 물류로봇 기술 동향
- 디지털 휴먼 상호작용기술
- 메타버스 대상
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함