TIFF 이미지 프로세싱 하기,, 질문 있습니다.

Mashi의 이미지

다름이 아니라, TIFF 형식의 이미지 파일을

이미지 프로세싱하여, 특정 좌표의 Gray 값을 가져오려고 합니다.

간단하다면 간단하다고 볼 수도 있겠습니다만,

생각보다 어떻게 잘 해결이 되지를 않네요, :(

무엇보다 가장 큰 문제점이, 이 TIFF 파일이 16bit gray 값을 가지고 있다는 것입니다.

여기저기 검색을 해 보았는데 16bit gray 값을 가지는 TIFF의 이미지 프로세싱에

관한 자료를 찾기가 힘들었습니다.

처음에는 CxImage라는 이미지 처리 관련 라이브러리를 가지고 작업하였었는데,

이 라이브러리에서는 24bit Color 와 8bit Gray 정도만을 지원하네요,,

라이브러리 소스를 받아서 살펴봤는데 bitCount에 1, 4, 8, 24 만 있고,

16이 존재하지를 않는것 같습니다.

제가 잘 못 알고 있는 것 일수도 있겠구요.

16bit gray 처리가 가능하다고만 나와있는 상용 라이브러리는 몇백만원을 넘어가네요 ㅠ

CxImage에서도 읽고 등등의 작업은 가능하였습니다만,

읽고 getPixelGray 로 값을 가져와보면 실제로 가지는 값은 8bit, 255까지의 값만을

가지고 있네요.

그 외의 방법으로 이 TIFF 파일이 비압축 파일이니,

그냥 단순 무식으로 파일을 읽어서 헤더부분을 제외하고

좌표를 지점의 두 바이트, 16bit 씩 끊어서 읽어오면 되지 않을까 하고

5.0 과 6.0에 관한 TIFF Spec 파일을 다운받았는데요,

이 자료에는 그냥 헤더에 관한 설명 정도 밖에 없는것 같네요.

그냥 간단히 "몇 바이트까지 헤더고, 어디서부터 쭉~ 데이터 부분이다,,"

와 같이 아주 쉽게 TIFF 파일 포맷에 관한 자료가 있다면 좋을텐데요,,ㅠㅠ

혹시 위와 같이 TIFF 파일을 이미지 프로세싱 해 보신 분이나,

파일 포맷에 관한 자료를 가지신 분 있으시면,

작은 도움도 감사히 받겠습니다.

그럼 혹시 모르니 미리 감사 드리며,

모두들 좋은 하루 되시길 바라겠습니다. (- -) (__)

htna의 이미지

직접 TIFF화일을 로드하는 부분을 만들어보시기 바랍니다.
머 압축되지 않은 raw data라면 더더욱 굳이 다른것을 구할필요를 느끼기 어려울 듯 하군요.
만약 첨이라 좀 어려우시다면...
bmp file 을 로드하는 부분을 만들어보시기 바랍니다.
Windows 혹은 MFC 에서 제공하는 라이브러리를 사용하지 않고,
단순히 header의 struct만 가지고 한번 만들어보심이...
한번 해 보면 TIFF는 쉽게느껴질듯...
로드하는것만 만들고나면 세이브하는루틴은 식은죽 먹기 입니다.

더구나 16bit gray level 이면 linux,ms-windows 어디서도 직접적으로 지원하지 않습니다.
머 직접적이라기보다, 아예 지원하지 않는다고 보는게 맞을겁니다.
8 bit gray level 을 적당히 필요한 부분 scaling해서 사용하셔야 할 겁니다.

너무 화일을 찾아서 보려고만 하지 마시길.
만약 그 화일에 버그가 있다면, 스스로 짠것은 고칠 수 있지만.
남의것은 대강 감으로 찍는 정도밖에 안될 겁니다. 명백한 버그가아니면...
만약 분석에 자신 있으시다면, CxImage 라이브러리를 분석해 보는것도 도움이 될 듯 하네요. 그 라이브러리의 화일 로드 루틴을...

혹시 석사시라면 영상처리 쪽 전공하고 계신듯 한데.
그런 비교적 간단한 코딩은 스스로 할 수 있어야 하지 않을까요???

WOW Wow!!!
Computer Science is no more about computers than astronomy is about telescopes.
-- E. W. Dijkstra

Mashi의 이미지

하하,, 답변 감사드립니다,,^^

거기다 따끔한 질책까지,, (- -) (__)

문제는 어제 밤에 해결했습니다.

기존에 짜여져 있던 코드를 제가 받아서 수정해야 하는 작업이었는데

기존에 CxImage라는 라이브러리를 사용해서 만들어 놨기에

제가 너무 라이브러리에 몰두 해 있었던거 같네요,,

저도 차선책으로 직접 파일을 로드 해볼까 했었는데

spec 파일 좀 읽어보다 너무 내용이 방대하고

저에겐 쓸모없는 부분이 많아서 잠시 다른 해결책을 찾고 있었습니다^^;;

결론은 직접 Hex Editor로 tif 파일을 읽어서 분석해 보고,,

그냥 C 파일 입출력으로 해결했습니다^^;;

헤더 크기만큼 제외 시키고 16bit * width * height 만큼 의 데이터가

그냥 순차적으로 되어 있더군요.

픽셀값 읽기까지 성공했으니 거의 다 된것 같습니다^^;;

아,, 그런데 제가 가진 TIFF 파일은 모두 64byte 헤더에 이미지 데이터,

그리고 마지막에 알 수 없는 데이터 몇백 바이트 같은 구조였는데

모든 tif 파일은 편집이 안되겠네요,, 아직은^^;;

htna님의 조언과 정보 감사드립니다.

늘 고운 하루 되시길 바라겠습니다,,^-^

Be the Miracle!!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.