배열 슬라이싱
im[i,:] = im[j,:] # set the values of row i with values from row j
im[:,i] = 100 # set all values in column i to 100
im[:100,:50].sum() # the sum of the values of the first 100 rows and 50 columns
im[50:100,50:100] # rows 50-100, columns 50-100 (100th not included)
im[i].mean() # average of row i
im[:,-1] # last column
im[-2,:] (or im[-2]) # second to last row
심플 반전
im2 = 255 - im #invert image
그레이스케일
im3 = (100.0/255) * im + 100 #clamp to interval 100...200
이미지 제곱
im4 = 255.0 * (im/255.0)**2 #squared
맨 위의 심플한 반전 이미지를 제외하고는 소수점으로 되어있다. 이를 TIFF형태로 저장하지 않으려면 다음과 같이 배열에서 이미지로 변할때 uint8 로 변환해 주어야한다. 안전하게 하려면 항상 하는편이 좋다.
아니면 에러가 떨어지는것이
PIL cannot write mode F to jpeg
위와같은 에러가 떨어진다.
(Scipy는 자동적으로 png로 저장한다면 변환을 하지만, PIL이나 scikit-image는 변환을 하지 않는다.)
pil = Image.fromarray(uint8(im))
히스토그램을 보려면
figure()
hist(cdf,128)
show()
Magnitude
얼마나 기존 배경과 차이가 있는지 설명해줄수 있다.
magnitude = sqrt(imx**2 + imy**2)
filters.sobel(im,1,imx)
imy = zeros(im.shape)
filters.sobel(im,0,imy)
magnitude = sqrt(imx**2 + imy**2)
pil = Image.fromarray(uint8(im))
형태학(Morphology)
from scipy.ndimage import measurements,morphology
im = array(Image.open('test01.jpg').convert('L'))
im = 1*(im<128)
labels, nbr_objects = measurements.label(im)
#조금더 계속 주고싶다면
im_open = morphology.binary_opening(im,ones((9,5)),iterations=2)
데이터 저장
http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html.
'데이터분석 > Vision Recognition' 카테고리의 다른 글
SIFT 이용해서 Local Descriptor 이용하기 (0) | 2016.01.02 |
---|---|
vlfeat 과 파이썬을 이용한 SIFT 구현 (0) | 2016.01.01 |
의학용 소프트웨어 참고 (0) | 2015.12.19 |
openCV에서 제공하는 몇가지 유용한 기능 (0) | 2015.12.19 |
[링크] 폐 진단의학 ITK VTK 및 관련 논문링크 (0) | 2015.12.14 |