** 3일차 (빅데이터 수집 시스템 개발) **
복습 퀴즈
- (1) 3 ~ 1000 까지의 숫자를 랜덤하게 100개 발생시켜서, 배열에 저장한 후 합계 내기
- (2) 위 1번에서 소수를 찾아서 출력하고, 소수의 합계를 내기
- (3) <심화> 위 2번에서 찾은 소수를 '각 소수부터 1씩 감소시켜 1까지 합계'를 출력하고, 모든 합계도 출력
심화>
-
예) 배열의 수가 13, 14, 333, 9, 7 ….. 이라면
13+12+...+2+1 = 합계1 출력 7 + 6 + ...+2+1 = 합계2 출력 .... 합계1 + 합계2 + .... = 총합 출력
-
-
(4) <심화> 3~5 크기의 랜덤한 3차원 배열 (예 : 4x3x5)을 생성하고, 해당 배열의 총 개수에 해당하는 가장 큰 소수 부터 저장하라.심화>
-
예) 4x3x5=60 이므로, 배열의[0][0][0] 번째에는 60번째 소수 (2, 3, 5, 7 ….. 60번째소수)
배열의[0][0][1] 번째에는 59번째 소수 (2, 3, 5, 7 .... 59번째소수) .... 배열의 [3][2][4] 번째에는 첫번재 소수(2)를 저장한다.
-
** 3일차 미션 **
미션1 : Linux 환경에서 2일차 미션을 진짜 파일로 처리하기 –> 대신 Windows Server에서 해도 됨..
RAW 이미지 파일을 선택해서 처리
미션 1-1. 이미지에 모두 100을 더한다.
미션 1-2. 이미지를 반전한다. 0--> 255, 1 --> 254....
미션 1-3. 이미지를 2진화 시킨다. 127 기준 ( 0 과 255만 있는 배열)
미션 1-4. 이미지를 2진화 시킨다. 평균값 기준
미션 1-5<심화>. 이미지를 2진화 시킨다. 중위수 기준
미션 1-6. 이미지를 좌우 미러링 한다.
미션 1-7<심화>. 이미지를 2배 축소한다
미션 1-8<심화>. 이미지를 2배 확대한다
미션 1-9<심화>. 이미지를 90도 회전한다.
미션 1-10<심화*2> 이미지를 45도 회전한다.
/root/PythcarmProject/PythonProject/images/……..
filename = “images/~~”
03일차. 13-01 함수
## 함수 선언부
def plus (n1, n2, n3=0) :
global myValue
retVal1, retVal2 = 0,0
myValue += 100
print(myValue)
return retVal1, retVal2
## 전역 변수부
num1 ,num2 = 100, 200
hap, sub = 0, 0
myValue = 1234
## 메인 코드부
if __name__ == '__main__' :
hap, _ = plus(num1, num2, 500)
print(hap,)
03일차. 13-02 텍스트 파일 처리
# 파일열기 --> 파일 읽기/쓰기 --> 파일 닫기
rfp = open('c:/windows/win.ini', 'r') # 1
wfp = open('win2.txt','w')
while True :
line = rfp.readline()
if (line is None or line == '') :
break
wfp.writelines(line)
rfp.close() # 3
wfp.close()
print('ok')
03일차. 13-03 바이너리 파일처리
rfp = open('C:/images/Etc_Raw(squre)/512/LENNA512.RAW', 'rb') # 512x512 크기
# 1. 이미지 크기 알아내기
height = 512
width = 512
# 2. 메모리 할당 (배열)
image = []
tmp = []
for _ in range(height) :
tmp = []
for _ in range(width) :
tmp.append(0)
image.append(tmp)
# 3. 파일 --> 메모리
for i in range(height) :
for k in range(width) :
image[i][k] = int(ord(rfp.read(1)))
print(image[111][111])
rfp.close()
03일차. 텍스트 포토샵 1
### 함수 선언부
def malloc(h, w) :
retImage = []
tmp = []
for _ in range(h):
tmp = []
for _ in range(w):
tmp.append(0)
retImage.append(tmp)
return retImage
def openImage() :
global image, height, width, filename
rfp = open(filename, 'rb')
for i in range(height):
for k in range(width):
image[i][k] = int(ord(rfp.read(1)))
rfp.close()
def displayImage() :
global image, height, width, filename
print()
for i in range(10):
for k in range(10):
print("%3d" % (image[i][k]), end=' ')
print()
### 영상처리 함수 모음 ###
def addImage() :
global image, height, width, filename
value = int(input('밝게할 값-->'))
for i in range(height) :
for k in range(width) :
image[i][k] += value
displayImage()
### 전역 변수부
image=[] ; height, width=0,0;
filename = 'C:/images/Etc_Raw(squre)/512/'
## 메인 코드부
if __name__ == '__main__' :
## 파일 선택
tmpFname = input('파일명-->')
filename += tmpFname + ".raw"
## 파일의 높이x폭
height = width = 512
## 메모리 할당
image = malloc(height,width)
## 파일 --> 메모리 로딩
openImage()
## 원본 이미지 보기
displayImage()
### 메뉴 선택하기 ###
menu = -1
while menu!=0 :
print("영상처리 : (1)밝게 (2)어둡게 (0)종료" )
menu = int(input('입력-->'))
if menu==1 :
addImage()
elif menu==2 :
pass
elif menu ==0 :
print('프로그램 끝!')
break
03일차. 텍스트 포토샵2 - GUI로 파일 선택
### 함수 선언부
def malloc(h, w) :
retImage = []
tmp = []
for _ in range(h):
tmp = []
for _ in range(w):
tmp.append(0)
retImage.append(tmp)
return retImage
def openImage() :
global image, height, width, filename
rfp = open(filename, 'rb')
for i in range(height):
for k in range(width):
image[i][k] = int(ord(rfp.read(1)))
rfp.close()
def displayImage() :
global image, height, width, filename
print()
for i in range(10):
for k in range(10):
print("%3d" % (image[i][k]), end=' ')
print()
### 영상처리 함수 모음 ###
def addImage() :
global image, height, width, filename
value = int(input('밝게할 값-->'))
for i in range(height) :
for k in range(width) :
image[i][k] += value
displayImage()
### 전역 변수부
image=[] ; height, width=0,0;
filename = 'C:/images/Etc_Raw(squre)/512/'
## 메인 코드부
if __name__ == '__main__' :
## 파일 선택
# tmpFname = input('파일명-->')
# filename += tmpFname + ".raw"
from tkinter.filedialog import *
filename = askopenfilename(parent=None,
filetypes = (('RAW File','*.raw'), ('All File', '*.*')))
## 파일의 높이x폭
#height = width = 512
import math
fsize = os.path.getsize(filename)
height = width = int(math.sqrt(fsize))
## 메모리 할당
image = malloc(height,width)
## 파일 --> 메모리 로딩
openImage()
## 원본 이미지 보기
displayImage()
### 메뉴 선택하기 ###
menu = -1
while menu!=0 :
print("영상처리 : (1)밝게 (2)어둡게 (0)종료" )
menu = int(input('입력-->'))
if menu==1 :
addImage()
elif menu==2 :
pass
elif menu ==0 :
print('프로그램 끝!')
break