[완료] 혹시 웹캠에서 White Balance 조절 어떻게 하는지 아시는분 계신가요?

sadtale의 이미지

우분투 9.10 에다가 Logitech C905 인가? 연결해서 영상처리를 하고 있는데요..
uvcvideo 드라이버로 잘 잡혀서 guvcview 같은걸로 영상도 잘 나오고..
제가 짠 프로그램으로도 영상 잘 나옵니다.

근데 화이트밸런스를 끄고 싶은데...
아래 함수로다가.. V4L2_CID_AUTO_WHITE_BALANCE 에 FALSE 를 줘도 안되더라구요.. unsupported 뜹니다.
그래서 이번엔 V4L2_CID_RED_BALANCE 랑 V4L2_CID_BLUE_BALANCE 에 값을 넣어봐도
ioctl querycontrol errer 22 가 뜨더군요..

아래 함수가 문제가 있나 하면 또 V4L2_CID_GAIN 값 같은건 잘 먹히거든요.. 에혀..

분명 guvcview 에는 White Balance Temperature, Auto 가 체크박스로 있고, 이 체크 박스 없애면
AWB 가 꺼지는 거 같거든요..
도무지 어떻게 해야 할 지 감이 안잡히네요..
도움 부탁드립니다....

int v4l2SetControl(struct vdIn *vd, int control, int value) {
struct v4l2_control control_s;
struct v4l2_queryctrl queryctrl;
int min, max, step, val_def;
int err;

if (isv4l2Control(vd, control, &queryctrl) < 0)
return -1;

min = queryctrl.minimum;
max = queryctrl.maximum;
step = queryctrl.step;
val_def = queryctrl.default_value;

if ((value >= min) && (value <= max)) {
control_s.id = control;
control_s.value = value;
if ((err = ioctl(vd->fd, VIDIOC_S_CTRL, &control_s)) < 0) {
return -1;
}
}

return 0;
}

Stand Alone Complex의 이미지

Visit http://svn.berlios.de/wsvn/guvcview/trunk/src/v4l2_controls.c

Ctrl+F, case V4L2_CID_AUTO_WHITE_BALANCE:, Enter

RET ;My life :P

sadtale의 이미지

네.. 답변 감사합니다.
guvcview 소스 코드를 보긴 했는데..
이걸 따라하자니.. 프로그램을 전체적으로 바꿔야 하더라구요..
저 부분을 붙여넣으니 get_ctrl_by_id 함수가 필요하고.. 이 함수를 쓰자니 또 따른 함수가 필요하고..
control_list 를 관리해야 하고 또 뭐를 해야하고.. 이런식으로..

그래서 어디까지 끌어와야 할 지도 모르겠고, 너무 복잡해져서.. guvcview 소스를 끌어오는건 포기하고 있었어요.. ㅠ.ㅠ
결국 다시 또 저걸 파 봐야 할런지.. 걱정이 태산이네요..

qt 를 쓰고 있는데.. gtk 를 공부해 봐야 할런지.. 그런것들도 고민이고.. 에공..
(qt 로 영상처리해서 화면에 막 뿌려주다 보니 느려지더라구요.. 그래서 gtk 는 더 빠를까 하고..)
쉽지가 않네요.. ㅠ.ㅠ

sadtale의 이미지

미치겠군요.. ㅠ.ㅠ 어디서드라? 어디서 끌어온 함수에 결함(?!)이 있었던 거로군요!!!

위에 적은 함수 중 isv4l2Control 를 호출하게 되어 있는데 이 함수에서..
queryctrl 을 날려서 리턴값을 체크하는데..

V4L2_CTRL_TYPE_BOOLEAN 을 queryctrl->flags 랑 & 연산 하고 있네요.. 헐..
이 부분을 queryctrl->type 으로 바꿔주니 멀쩡합니다. 흑....

어쩐지 ON/OFF 쪽만 문제가 많더라니.. 흑흑흑..
이제 Auto White Balance 도 잘 꺼집니다.. 흑..

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.