2012년 3월 6일 화요일

opencv 삽질 일기

Python + opencv 삽질
1. 이미지 threshold 해보자고 도전
2. C++ 예제보고 python삽질 시작
3. C++ 처럼 파라미터 어떻게 넘길까 뻘짓하다가 검색하니 바로 나옴
4. 제대로 다 했는데 이제 이미지가 일차적으로 그레이 변환이 안됨 짜증
5. cv2로 이미지 로딩 일차 그레이 변환해도 안되서 cv로 했더니 이젠 gif는 로딩 못함
6. 그나마 Python은 pil로 가능할꺼 같은데 될런지
%스캔 이미지 리사이즈 어떻게 찾다가 아직도 헤메고 있네 이젠 거의 다 된거 같은게 ㅡㅡ


7. IplImage -> cv::Mat or cvMat로 만들어진 api 없어서 포기
8. gif 이미지 경우는 그냥 jpg로 변경을 생각해봄.
9. 그래서 pil 찾아봤더니 이게 이게 또 쉽지가 않네 ㅡㅡ;;;
10. import Image
im = Image.open("파일")
im.convert("RGB")
im.save("파일.jpg")
11. 이랬더니 im.mode 가 P 라서 안됨.
12. 안되는게 뭐가 이렇게 많은지...
13. 이럴때 RGB로 변경은
14. http://www.pythonware.com/library/pil/handbook/imagepalette.htm


lut = im.resize((256, 1))
lut.putdata(range(256))
lut = lut.convert("RGB").getdata() 

# lut now contains a sequence of (r, g, b) tuples
15. 위의 걸로 해서 다시 도전해봐야 겠음. ㅡㅡ;;
import image
im = Image.open("파일")
rgb = im.convert("RGB")
rgb.save("파일.jpg")

16. gif 파일 jpg로 변경
17. cv2로 threshhold 처리
18. 소스

import cv2,cv,Image

threshold_value = 0
threshold_type = 3
MAX_VALUE = 255
MAX_TYP = 4
MAX_BINARY_VALUE= 255

def main():
    im = Image.open("IMG.gif")
    rgbimage = im.convert("RGB")
    rgbimage.save("IMG.jpg")
    src2 = cv2.imread("IMG.jpg")

    src_grey =  cv2.cvtColor(src2,cv.CV_RGB2GRAY)
    result, dest = cv2.threshold(src_grey,threshold_value,MAX_BINARY_VALUE,threshold_type)

    cv2.imwrite("reslt.jpg",dest)
 
if __name__ == "__main__" :
    main()

19.에러는 안 나는데. 이게 용량만 늘어남. 변환는 없음 ㅡㅡ;;
19.1 용량이 늘어난 이유: palette 이미지에서 rgb로 변환을 해서 그렇게 됐음. ㅡㅡa
20. 소스상의 에러는 없음. 다 제대로 돌아감. 근데 내가 가진 이미지는 왜? 제대로 되는게 없네 ㅡㅡa







댓글 없음:

댓글 쓰기