トップページ⇒tech
981コメント343KB

画像処理 その2

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさんNGNG
前スレ

画像処理
http://pc2.2ch.net/test/read.cgi/tech/992671330/l50
0002デフォルトの名無しさんNGNG
今日は糞スレが大量発生するねぇ
0003デフォルトの名無しさんNGNG

      /⌒ヽ   コラ―――!!!
     /  =゚ω゚)=
     ( ヽノ
      ノ>ノ  ヒタヒタ
. 三  しU
0004デフォルトの名無しさんNGNG

      /⌒ヽ   コラ―――!!!
     /  =゚ω゚)=
     ( ヽノ
      ノ>ノ  ヒタヒタ
. 三  しU
0005デフォルトの名無しさんNGNG

      /⌒ヽ   コラ―――!!!
     /  =゚ω゚)=
     ( ヽノ
      ノ>ノ  ヒタヒタ 
. 三  しU
0006デフォルトの名無しさんNGNG

      /⌒ヽ   コラ―――!!!
     /  =゚ω゚)=
     ( ヽノ
      ノ>ノ  ヒタヒタ 
. 三  しU
0007デフォルトの名無しさんNGNG

      /⌒ヽ   コラ―――!!!
     /  =゚ω゚)=
     ( ヽノ
      ノ>ノ  ヒタヒタ 
. 三  しU
0008デフォルトの名無しさんNGNG

      /⌒ヽ   コラ―――!!!
     /  =゚ω゚)=
     ( ヽノ
      ノ>ノ  ヒタヒタ 
. 三  しU
0009デフォルトの名無しさんNGNG
>>1

テンプレも参考リンクもなしに新スレ立てんでくれ。
前スレで話しあってから立て直すように。
0010デフォルトの名無しさんNGNG
別にここでいいよ
0011デフォルトの名無しさんNGNG
       画像処理 その2

・画像処理について素人同士で大激論
・初学者の質問に対してやさしく(的を外れた)解答を与える
・その道の玄人も大歓迎


/*********************** 始動 ***********************/
0012テンプレNGNG
前スレでも、よく話題に上ったので・・・

Q:カラー画像をグレースケールに変換するには?

A:グレースケールへの変換には、完全な解答はありません。
一般には、下式が用いられるようです。

グレースケール = 0.299R + 0.587G + 0.114B

ちなみに、(R+G+B)/3はオススメできません
0013デフォルトの名無しさんNGNG
WindowsのColorDialog([色の設定]ダイアログ ボックス)は今ひとつなんで

左上が 真白 右下が黒 のパレットを作ろうと思うのです
xx ,yy をx,y座標として

y:=1-(xx+yy)/2;   //輝度
x:=(1+(xx-yy))/2*360;//色相

で y=0.5 の時に彩度が最大 としたいのですが 旨い計算式が思いつきません
001413NGNG
とりあえず、色の分離は

y:=1-(xx+yy)/2; //輝度
t:=1-2*abs(y-0.5);
if t<>0 then x:=(1+(xx-yy)/t)/2*3;//色
n:=Trunc(x);
x:=x-n;
case n of
0: begin r:= x ; g:= 1-x; b:= 0 ; end;
1: begin r:= 1-x ; g:= 0 ; b:= x ; end;
2: begin r:= 0 ; g:= x ; b:=1-x ; end;
end;
0015デフォルトの名無しさんNGNG
Linuxで画面にプロットするところから優しく教えてくれるサイトはありませんか?
0016デフォルトの名無しさんNGNG
gtk使え。
0017デフォルトの名無しさんNGNG
>>15

Java2使え。
0018_NGNG
http://homepage.mac.com/hiroyuki44/
0019デフォルトの名無しさんNGNG
>>15
Kylix使え。
0020デフォルトの名無しさんNGNG
>>13
何をしたいのかよく分からんが
YHS輝度色相彩度やRGBと座標X,Yの対応はR^3⇔R^2で連続には
出来ないだろう。
002113NGNG
>>20
うんそうみたいだな
色空間を5.5.4 bitに別けて
32*32*16=16384 128*128 だから、これをスムーズに並べられたらなあとは思うんだけど。

0022デフォルトの名無しさんNGNG
トラックボールを転がすようなインターフェースができたら面白いと思うけどね。
全部の色を一度に見られないというデメリットがあるが……
0023デフォルトの名無しさんNGNG
>>21
色空間をペアノ曲線に乗せてみた。全くの無意味だった
http://up.isp.2ch.net/up/d6a1398874fa.jpg

やはりPainterのパレットの類(一つのパラメータは独立させる)のほうが
まともに使えると思う
002413NGNG
>>23
でも一般の人は画面上に全部の色があってそこからひらって来るイメージの方が判り易いかもしれないと思ってさ、

Adobeのツールのパレットが上が白で下が黒で連続した感じで色が並んでる。
それで、斜め方向に明るい順に並べて出来るだけ色が連続するようにしたらどうかなと思ったんだけど
数学的に解くのは難しいみたいだ。
8x8x4=256色なら 16x16に手作業で順におけばそれなりにおけるんだけどねえ
0025デフォルトの名無しさんNGNG
>>24
Photoshopのパレットはおそらく彩度を固定していて
彩度の低い灰色などは選べないと思う。
0026葉っぱふみふみNGNG
mpeg2の規格書ってどうやって手に入れるかしってますか?
フリーじゃない。。?もしかして。。
0027デフォルトの名無しさんNGNG
どうやらそのようだ
http://mpeg.telecomitalialab.com/standards/mpeg-2/mpeg-2.htm

どれもisoで買うようにリンクされている
0028デフォルトの名無しさんNGNG
>>026
ITU から無料で入手可能 ITU-T H.262 / ITU-T H.222 というのがそれ
MPEG-2 Video と MPEG-2 System だけだけど、多分 26 の言う MPEG-2
はこの二つで足りるはず。
0029葉っぱふみふみNGNG
>>27さん
>>28さん
ありがとうです。(TT)
探してみます。
0030葉っぱふみふみNGNG
て訳でみつかりますた。

ttp://ecs.itu.ch/cgi-bin/dms-ebookshop/

で登録するとお一人様、年三回ダウンロードが無料っす。
0031デフォルトの名無しさんNGNG
年3回…微妙にケチだな…
0032デフォルトの名無しさんNGNG
QRコード(二次元バーコード)をデコードするライブラリってありませんか?
さらに,カメラで撮影した画像から手軽に内容を認識できれば面白そうだが.

QRコードの解説
www.denso.co.jp/EAP/qrcode/index-qr.html

0033デフォルトの名無しさんNGNG
現在、DirectShowをつかってdvカメラから白黒動画をグラバに読み込んでます。
この画像をリアルタイムで2値化したいのですが、どのようにすればいいでしょうか?
背景を一色でその前に人をたたせて 人 背景部分を分離したいのです。よろしくお願いします。
0034デフォルトの名無しさんNGNG
背景だけの取り込みは出来るの? 出来るなら差分をマスクにすれば・・・

どんなシチュエーションを想定してるの?
0035デフォルトの名無しさんNGNG
最終的な形としては
ttp://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html
このテキストレインのような状態を目指しています。
4月からプログラムを始めてやっとスムーズに取り込めるようになり、方法としてはDirectShowをつかってdvカメラから白黒動画をグラバに読み込んでます。
人と背景の境をエッジ検出でやろうと思ったのですが、2値化して分けたほうがいいのではないかと思いチャレンジしています。
リアルタイム処理で2値化して境の部分であたり判定を出そうとしているのですが、見当違いでしょうか?
美大系の大学でこういう事を専門にしている先生がいないために、もしかしたらものすごく見当違いのことをしているのじゃないかと思い、アドバイスいただけるとうれしいです。
よろしくお願いします。
0036デフォルトの名無しさんNGNG
(´・ω・`)ノ こんにちは。

浮動小数点を使わずに、
任意の二点間に直線を引きたいのれす。

もちろんlineとかは使えません。

使えるのはPSETなどの1ドット描画だけれす。

条件を満たす高速なアルゴリズムがあったら教えて欲しいのれす。

0037デフォルトの名無しさんNGNG
>>36
DDA Bresenham で検索したら?
003836NGNG
>>37
(´・ω・`)ノ すぐに実現できました。
ありがちょう!!
0039デフォルトの名無しさんNGNG
>35
リアルタイムで白黒画像なら、2値化して境界の判定をするオーバーヘッドは
大きい様な気がする。 2値化の精度も問題だろうし・・・

特定のカラープレーン1枚を使って、マスクがあればマスク、無ければ直前の
画像との差分を、境界判定の処理にまわした方が良いと思うな。

「マスク」って背景のみ映ってる画像の事ね。
0040デフォルトの名無しさんNGNG
2値化が旨くゆくならそりゃ成功だろうけど

自分なら背景に加工するけどね。 たとえば

案1、背景を点滅させる
  点滅してる部分をマスクパターンとして抜けば人物が残る

案2、背景に縞模様を写す
  辺より縞模様を追跡して、分岐があった個所を繋げば輪郭パターンの出来上がり
0041デフォルトの名無しさんNGNG
クロマキーでは駄目なのか
0042デフォルトの名無しさんNGNG
なるほど2値化はわりとむずかしいのでしょうか。

いまとても参考にしているHPがあり
ttp://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html
この中では差分で判定しているのですが、その差分判定の
s = s + (buf2[i]= fabs( buffer[i] - buf3[i]
で、とても時間がかかってしまいます。
クロマキー処理ということはあるひとつの色をすべて抜くということですよね。
あした大きな本屋にでもいってその情報も調べてみようと思います。
他にも気が付いたことがあったらぜひお願いします。
0043デフォルトの名無しさんNGNG
白黒画像なんだから、クロマキーは使えないでしょ。
妥協案として、背景を真っ白とか真っ黒なら、有りか・・・

点滅してても、画像取り込みの段階で(略

2値化は難しい。 決まればキレイだがそうでないと、何見てるんだか判らん。

その式は、複数行に分けて、コンパイラの最適化に期待。
出来ればMMX命令を使ってアセンブラ化が良いぞ。
0044デフォルトの名無しさんNGNG
点滅を取り込みに同期してやればいい。
232Cかプリンタポートで取り込み毎に on/offを反転し
取り込んだ映像で1ピクセル単位に輝度差を調べれば良いから簡単だ
0045デフォルトの名無しさんNGNG
減色とか、RGB→YCbCr変換とか、VRAMの効率的な扱い方とか
もろもろの基本的な画像処理がわかる書籍について、
知っている人がいたら教えてクレクレタコラ。
0046デフォルトの名無しさんNGNG
>>45
ネット上にいくらでもあるような
0047デフォルトの名無しさんNGNG
点時と滅時の差分か? なら、どちらかにレベルを合わせて(点時を255とか、滅時を0)
判定した方が、処理が早いと思うが。

ポートを見に行ってたのでは、時間が掛かり過ぎるよ。

>45
VRAMの効率的な扱い方って、処理系に依存するから、自分で探すしかないよ。
0048デフォルトの名無しさんNGNG
>>45
そういうのはゲームプログラミングの関係で多いよね。
0049デフォルトの名無しさんNGNG
>>47
ポートを見るとか関係ないよ。

言ってるのは、232CのRTSとかの出力で人物背景のライトをON/OFF出来るようにしておいて、
ライトオンで一度 取り込み -->A
ライトオフで一度 取り込み--> B

A-Bのデータを作れば背景が抜けるという意味さ
0050デフォルトの名無しさんNGNG
>49
ゴメン、意味は判ってるんだ。 ただ、セントロやシリアルのポートをいじるのは
画像の収集(フレームの取り込み)に比べて時間がかかり過ぎる事が言いたかった。

それから、その方法では、人物が画面内に静止したら、まずくないか?
0051デフォルトの名無しさんNGNG
だから、取り込み って書いた部分は1画面取り込みの事だからさ

この方法は人物が静止してたら問題ない。逆に動いていた時に差分が
出てしまい、その動いてたときに間違えないような設定値を探さないといけない。
0052デフォルトの名無しさんNGNG
WebProgから流れてきました。Perl⇒サムネイル画像作成に
ついての質問をさせていただきます。前スレを読んだのですが、
私の状況と微妙に違ったため、解決することが出来ませんでした。

(状況)
利用しているサーバではGD,PerlMagickがインストールされていません。
(欲しい情報)
・インストール無しで使える、画像縮小のモジュール
・画像を縮小するための具体的なアルゴリズム
・インストールが必要なGD,PerlMagickモジュールの改造方法
・前スレで記載されていたjpegの展開⇒サイズ変更⇒圧縮について
のような情報を求めています。
(jpeg/png/gifなどについて行いたいです。(1つしか出来なくても構いません))

自分でJpegの構成を調べて処理することは最後の手段としたいっす。
どうかよろしくお願いします。
0053学生NGNG
しばらくぶりです。今日いろいろ図書館や先生に質問などでうごいてみました。
なかなか、難しいです。先生から2値化 エッジ検出 動き差分習得などのアドバイスを
いただいたのでそれらを試してみたいと思います。
ただ先生は、わからないけど。。。じゃない?という答えだったので不安でいっぱいなのですが。
rc232cポートなどつかういいんですかね?ただ、そうなるとまたハードルが高く。。
アセンブラ化も、、大変そうですね、がんばってみます。ありがとうございました。
また、なにかあったら質問にきます。ありがとうございました。
005452NGNG
解決してしまいました。申し訳ありません。
0055社会人NGNG
 ベクタで、2DのDXFファイルを、解像度指定してラスタライズしたいです。

 出力は最終的にはBMPあたりなんですが、それはいいとして、とりあえず
DXFをラスタライズする際に利用可能な、そこそこ使いやすいライブラリ
(有償/無償問わんです)って何かないでしょか?

 アプリだと、要はコンバートなので色々見つかるんですが、ライブラリだ
となかなか見当たらなくて。

 呼び出し側の言語としては、Javaか、C/C++のどちらか(現時点ではどち
らでもいいです)で、ただ、C/C++ならWindows上で利用できることが前提に
なりそうです。

 よりふさわしいスレ/板があったら、それでもよいので教えてくださいまし。

005655NGNG
>>55

 書き方が変だったかも

> ベクタで、2DのDXFファイルを、解像度指定してラスタライズしたいです。

 ↓

> ベクターデータのDXFファイル(2D)を、解像度指定してラスタライズしたいです。
0057デフォルトの名無しさんNGNG
DXFのラスタライズなら、それこそWindowsAPIだけで十分な気がするが?
面倒なのはスプラインくらいだろ
005855NGNG
> DXFのラスタライズなら、それこそWindowsAPIだけで十分な気がするが?
> 面倒なのはスプラインくらいだろ

 いや、全部のDXFエレメントをレンダリングするのを自力で実装する費用は
出ない案件で、上司から、

「市販でコンバートするライブラリとかあるんじゃないの?」

と言われていたものの、探してみると意外とみつからない、というのが実情
でして…。
0059デフォルトの名無しさんNGNG
http://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/287703/pack/win95/game/table/pachinko/majomika.lzh

http://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/281853/pack/win95/game/table/pachinko/SUTING.LZH

http://www5b.biglobe.ne.jp/~ryo-kyo/
0060デフォルトの名無しさんNGNG
>>58
コマンドライン形式のコンバータを呼び出すのではダメなの?
数十万円程度で入手できると思うが

ただ、AutoCADの表示に完全に忠実なラスタライズをしている製品
は、少ないので注意。特にPOLYLINEやMTEXT。
006155NGNG
>>60
やはり、とりあえずはコマンドラインタイプなんすね。
KDコンバートとかいうソフトは見つけました。
これをベースに検討してみます。
0062デフォルトの名無しさんNGNG
tiftのヘッダにあるタグに独自のタグを追加したいんですけど、
どの値が自由に使ってよいか知ってる人がいれば教えてください。
0063デフォルトの名無しさんNGNG
ビットマップ(DIB)をWin32APIのStretchDIBits()のように任意倍率で縦横に拡大させたいのですが
どんな方法がありますか?
できるだけ高速なものがいいです。
0064デフォルトの名無しさんNGNG
>>63 ブレゼンハムとか?
0065デフォルトの名無しさんNGNG
すいません、ちょっと教えてください。
今linuxでlibtiffってライブラリーを使ってC言語で
グレースケールの画像の各ピクセルの輝度を取り出したいんですが
どうもよくわかりません。

ここにあるTIFFReadScanlineって関数を使ってやれば出来そうだなとは思うんですが。
http://www.libtiff.org/man/TIFFReadScanline.3t.html
開いた画像を一行ずつスキャンしてバッファーに解凍するって言うんですけど
このバッファに入った値をどうすればピクセル毎の輝度が得られるかさっぱりわからないんです。
文字列をgets()で開いた場合に、配列の各要素に一文字ずつ格納されるのとはどうも違うようで
イメージが掴めません。

どなたかわかる方がいらっしゃったらよろしくお願いします。
0066デフォルトの名無しさんNGNG
>>64
プレゼンハムってどんなプレゼン?
0067デフォルトの名無しさんNGNG
>>65
輝度はピクセルのRGB値から簡単に求めることができる。
公式は「0.299f * R + 0.587f * G + 0.114f * B」
0068ともNGNG
みてね〜♪
http://s-rf9.free-city.net/page003.html
0069デフォルトの名無しさんNGNG
>>63

StretchDIBits()した結果のデバイスコンテキストをDIBなりDIBSectionなりに取得。
0070  NGNG
反射率分布図を使った三次元形状復元について質問があるんですけど
光を受ける面が傾いていたら暗くみえて,傾いていない(勾配がゼロ)
の場合明るく見えますよね?
それとは少し違うんですけど,三次元の形状でなめらかな特性をもつ
物体の「なめらかさ」を定義したい場合
(px^2 + py^2) + (qx^2 + qy^2)がそのなめらかさらしいのですが
いったいなぜそうなるんですか?
ちなみにp,q というのはその三次元形状の物体の面の勾配です。
0071デフォルトの名無しさんNGNG
どなたかわかる方がいらっしゃればお願いします。
CADファイルのDXFをメタファイルに変換をしているのですが、
ブロックの挿入で
x方向・y方向・z方向の尺度と回転角度って項目がデータにあるんですが
これはブロックの何を基準に回転または拡大・縮小をかけているんでしょう?
始点?終点?中心点?
どなたかわかる方がいれば教えてください
007265NGNG
>>67
アドバイスして頂いてありがとうございます。
でも、今取り組んでいるのはグレースケールなんです。
それと私がわからない点は、一行分バッファに取り込んでから
どうすれば各ピクセル毎の輝度が得られるかって事なんです。
理解し難い文章ですみません。
0073デフォルトの名無しさんNGNG
すいません!
TransparentBltってだめなのwin98だけ?
win98seからはok?
0074デフォルトの名無しさんNGNG
TransparentBltってなんだ?
Win32APIには無いようだが。もっともWin32APIのマニュアルには
そういう関数がサンプルプログラムで入ってはいるが
0075デフォルトの名無しさんNGNG
>>73
だめ、2000かXP。
↓のスレで聞いた方が良かったな
Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645/

>>74
>Win32APIには無いようだが。
なにをもって無いと、言ってるのか分からないが・・・
http://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_transparentblt.asp

0076デフォルトの名無しさんNGNG
>>65
tiffはよくわからんがbmpにしてから
http://asapc1.cc.it-hiroshima.ac.jp/stu/c02/c02.html
みたいにするのはだめか?
0077_NGNG
http://homepage.mac.com/hiroyuki44/hankaku02.html
007873NGNG
>>75 ありがとう!
せこせことマスク処理しますわ。
0079デフォルトの名無しさんNGNG
Xlibを使ったプログラムを作っています。
ウインドウが他のウインドウで隠されても描画したものを保持したいんですが、
XSetWindowAttributes window_attr;

window_attr.backing_store = Always;
window_attr.save_under = True;
XChangeWindowAttributes(display, window, CWBackingStore|CWSaveUnder, &window_attr);
としても、消えてしまいます。
どうしたら描画内容を保持できるのでしょうか。
0080ぽNGNG
>>32
QRコードライブラリ完成したでつ。
そこそこの値段でうるでつよ。
CとJavaね。
0081デフォルトの名無しさんNGNG
wmfの画像について質問させてください。
wmfの事についてlibwmfのドキュメントを少し読んでみたのですが、
libwmf自体は各画像フォーマットへのインターフェース的な事だと
私は解釈したのですが、そういう事であっているのでしょうか?
そういう事であれば、wmfと言う画像フォーマットはヘッダ情報に
wmfと書かれた、実体はjpegであったり、その他色々な画像形式が
そのままで含まれている形式(?)と言う事なのでしょうか。

どなたか、わかる方がいたら教えてください。

0082デフォルトの名無しさんNGNG
>>81
WMF=Windows Meta File

WindowsのGDI描画命令をそのまま保存されてるもの
0083デフォルトの名無しさんNGNG
>>82
あ、なるほどそうですね。そういえばベクターフォーマットの形式ですね。
wmfって。

今、Javaでwmf画像のファイルを扱うプログラムを作りたいのですが、その
描画命令を理解できるParserが必要って事ですよね。こう言うのが載った
wmfフォーマット形式の仕様書みたいなのってどこかにあるんでしょうか?
0084デフォルトの名無しさんNGNG
マイクロソフトのWin32のマニュアルに
APIを通じた入出力については書かれている
008532NGNG
>>80
大学でちょっと試す程度なので,なんとかお安くならないものでしょうか.
#シェアウェアでソースがあったら買ってしまいそうです.
0086デフォルトの名無しさんNGNG
 長崎市の幼児誘拐殺人事件で、長崎県警捜査本部は、遺体発見現場近くの防犯
カメラ映像に残った幼児連れの若い男について画像分析などで、市内の13歳
の中学生とほぼ特定した。

もとの画像がどれだけ曖昧だったか気になるところ。
0087ぽNGNG
>>85
アカデミックユースですね。
なら無償でどうぞ。
0088デフォルトの名無しさんNGNG
>>79
(1) XCreate
Pixmap でピックスマップを作る.
(2) ウィンドウに描くのと同じ要領でそれに描画.
(3) Expose イベントを取得したときに XCopyArea で
表示したいウィンドウに描画

でいかがでしょうか?
0089デフォルトの名無しさんNGNG
スマソ修正
(1) XCreatePixmap でピックスマップを作る.

なんで改行入ったんだ?
0090山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0091デフォルトの名無しさんNGNG
JPGからBMPに変換して、その色情報を
二次元配列に格納する関数ってありますか?
言語はCです。
よろしくお願いします。
009232NGNG
>>87
遅くなりました.
使わせて頂けませんでしょうか?
(まだちゃんとしたものを作るところまで使うかどうか全くわかりませんが)
0093ぽNGNG
>>92
メル欄
009479NGNG
>>88
やっぱりそうするしかないんでしょうか。
学校の solaris では期待したとおりの動作をするんですが……。
0095デフォルトの名無しさんNGNG
>>94
今私の膝で開いてる本によると,バッキングストア機能は
持っているサーバと持ってないサーバがあるらしいです.
009695NGNG
訂正します
×バッキングストア機能は
○バッキングストア機能を


どの X サーバでも確実に動作させたいなら,
バッキングストア機能を頼るのはよくなさそうですね.
0097デフォルトの名無しさんNGNG
>>91

割と最近のWindowsでは、DIBにJpegイメージを格納してデバイスコンテキストに描画できるらしい。
それでうまくいけば、DIBSectionのメモリデバイスコンテキストにでも描けばRGBの配列が得られるはず。
0098デフォルトの名無しさんNGNG
(´・ω・`)ノ こんにちは。

画像ファイル .PCT と .PNG を自力で展開したいので、

上記2つのフォーマットの詳細な構造を知りたいのれす。

ご存知の方、ヒントでもなんでも良いのでよろしくお願いします。


0099_NGNG
http://homepage.mac.com/hiroyuki44/
010098NGNG
(´・ω・`)ノ 言い忘れました。

日本語の情報が欲しいのれす。

http://www.wotsit.org/ にある英語情報は読めないのれす。

0101デフォルトの名無しさんNGNG
たいした英語じゃないんだし読め。
でなければ翻訳サイトでも使え。
そうでなくともぐぐれば png形式は簡単に引っかかる
0102デフォルトの名無しさんNGNG
私有セルを確保したいのですが、次のコードの最後の行で XAllocColorCells
が 0 を返します。
どこが悪いのでしょうか。

Display *display;
Colormap colormap;
unsigned long pixel[4];

display = XOpenDisplay(NULL);
colormap = DefaultColormap(display, DefaultScreen(display));
XAllocColorCells(display, colormap, False, NULL, 0, pixel, 4);
0103_NGNG
http://homepage.mac.com/hiroyuki44/
0104102NGNG
えーっと、やりたいのはフェードインのように
色を変化させることです。
0105デフォルトの名無しさんNGNG
>>98
ttp://tech.millto.net/~pngnews/kndh/PngSpec1.2/PNGcontents.html
010632NGNG
>>93
何回かメール差し上げたのですが...
0107_NGNG
http://homepage.mac.com/hiroyuki44/jaz05.html
0108ぽNGNG
>>106
あれ?届いてないよ。
じゃー、もひとつ。
0109山崎 渉NGNG
(^^)
0110デフォルトの名無しさんNGNG
jpgファイルを読み込んだり書き込んだりするにはどうしたらいいでしょうか?
jpgの構造が載っているページ、英語でも(もちろん日本語のほうが嬉しいですが)いいので教えてください。
自分でも少し検索してみたのですが、jpgだと画像が引っかかってしまい上手く検索できませんでした。
0111デフォルトの名無しさんNGNG
>>110
IJGのlibjpeg使うよろし
0112デフォルトの名無しさんNGNG
>>110
公式な情報はwww.jpeg.orgに(英語)。
日本語のWebサイトでは、
http://siisise.net/jpeg.html
とかを便利に使ってたけど。

あと、書籍では
http://www.amazon.co.jp/exec/obidos/ASIN/4797306327/
が分かりやすいと思うが、入手困難かも。
0113110NGNG
>111 >112
すいません。jpegなめてました。さすが本一冊でちゃうだけのことはありますね。
おとなしくlibjpeg使います。
どうもありがとうございました。
0114デフォルトの名無しさんNGNG
RGBからHSIへ変換し、またRGBに戻すというプログラムで質問です。

/***** hsi_data[0][g][r] 色相、hsi_data[1][g][r] 彩度、hsi_data[2][g][r] 明度 *****/
void rgb_to_hsi(double ***hsi_data, UCHAR ***rgb_data, int gyou, int retu){
int g,r;
double min_i,max_i;
double R,G,B;
for(g=0; g<gyou; g++)
for(r=0; r<retu; r++){
max_i = (MAX3(rgb_data[0][g][r],rgb_data[1][g][r],rgb_data[2][g][r]))/255.0;
min_i = (MIN3(rgb_data[0][g][r],rgb_data[1][g][r],rgb_data[2][g][r]))/255.0;

hsi_data[2][g][r] = (max_i+min_i)/2.0;
if(max_i - min_i <= EPSILON)
hsi_data[1][g][r] = 0.0;}
else{
if(hsi_data[2][g][r] <= 0.5) hsi_data[1][g][r] = (max_i-min_i)/(max_i+min_i);
else hsi_data[1][g][r] = (max_i-min_i)/(2-max_i-min_i);
R=(max_i-(rgb_data[0][g][r]/255.0))/(max_i-min_i);
G=(max_i-(rgb_data[1][g][r]/255.0))/(max_i-min_i);
B=(max_i-(rgb_data[2][g][r]/255.0))/(max_i-min_i);
if((rgb_data[0][g][r]/255.0 - max_i) <= EPSILON){
hsi_data[0][g][r] = (B-G)*PAI/3;
}else if((rgb_data[1][g][r]/255.0 - max_i) <= EPSILON){
hsi_data[0][g][r] = (2+R-G)*PAI/3;
}else if((rgb_data[2][g][r]/255.0 - max_i) <= EPSILON){
hsi_data[0][g][r] = (4+G-R)*PAI/3;
}
if(hsi_data[0][g][r] < 0)
hsi_data[0][g][r] += 2.0*PAI;
}}}
0115続きNGNG
void hsi_to_rgb(UCHAR ***rgb_data, double ***hsi_data, int gyou, int retu){
int g,r,h;
UCHAR p,q,t;
for(g=0; g<gyou; g++)
for(r=0; r<retu; r++){
if(hsi_data[1][g][r] <= EPSILON) rgb_data[0][g][r] = rgb_data[1][g][r] = rgb_data[2][g][r] = (UCHAR)(hsi_data[2][g][r]*255+0.5);
else{
if(hsi_data[0][g][r] < 0.0) hsi_data[0][g][r] += 2*PAI;
h = (int)(hsi_data[0][g][r]/PAI*3);
if(hsi_data[0][g][r] >= 2*PAI) h=0;
p = (UCHAR)(hsi_data[2][g][r]*(1-hsi_data[1][g][r])*255+0.5);
q = (UCHAR)(hsi_data[2][g][r]*(1-hsi_data[1][g][r]*(hsi_data[0][g][r]-h))*255+0.5);
t = (UCHAR)(hsi_data[2][g][r]*(1-hsi_data[1][g][r]*(1-hsi_data[0][g][r]+h))*255+0.5);
switch(h){
case 0:
rgb_data[0][g][r]=(UCHAR)(hsi_data[2][g][r]*255), rgb_data[1][g][r]=t,rgb_data[2][g][r]=p;break;
case 1:
rgb_data[0][g][r]=q, rgb_data[1][g][r]=(UCHAR)(hsi_data[2][g][r]*255),rgb_data[2][g][r]=p;break;
case 2:
rgb_data[0][g][r]=p, rgb_data[1][g][r]=(UCHAR)(hsi_data[2][g][r]*255),rgb_data[2][g][r]=t;break;
case 3:
rgb_data[0][g][r]=p, rgb_data[1][g][r]=q,rgb_data[2][g][r]=(UCHAR)(hsi_data[2][g][r]*255);break;
case 4:
rgb_data[0][g][r]=t, rgb_data[1][g][r]=p,rgb_data[2][g][r]=(UCHAR)(hsi_data[2][g][r]*255);break;
case 5:
rgb_data[0][g][r]=(UCHAR)(hsi_data[2][g][r]*255), rgb_data[1][g][r]=p,rgb_data[2][g][r]=q;break;
default:
error1("hsi_to_rgb error");
}
}}}
0116デフォルトの名無しさんNGNG
画像処理ってどうしてもこう
わけわかんない感じの
ながいコードになっちゃうんだよなあ
そこがツライ・・・
0117115続きNGNG
んでこの関数を使うとこんな風になってしまいます。
http://www.42ch.net/UploaderSmall/source/1060271379.png
http://www.42ch.net/UploaderSmall/source/1060272009.ppm (間違ってppm上げてしまいました)
青が赤に・・・

検索もしてみましたが、彩度を求めるときに明度<=0.5 or 明度>0.5という判定を使っている式が見つかりませんでした。
この式は私が使っている教科書に載っているのですが、これにはHSI逆変換については載っていませんでした。
その為HSIからRGBにするときには使っていて、RGBからHSIに戻すときにこの判定が無く青が赤になってしまうのではないかと・・・。
結論を言いますと彩度を求めるときに明度の判定を用いているHSI逆変換プログラムの式を教えてください。

あとrgb_data[0][g]には赤、rgb_data[1][g]には緑、rgb_data[2][g]には青が入ってます。
0118114NGNG
>116
改行制限とかタブが消えるとかあったのでマスマス分かりにくく・・・
0119デフォルトの名無しさんNGNG
念の為加工画像のpngも上げてみました。
http://www.42ch.net/UploaderSmall/source/1060272692.png

参考にしたページ
http://216.239.57.104/search?q=cache:LAb_Oee8lKkJ:village.infoweb.ne.jp/~ishidate/vcpp6_g3/vcpp6_g3.htm+HSI%E5%A4%89%E6%8F%9B%E3%80%80HSI%E9%80%86%E5%A4%89%E6%8F%9B&hl=ja&lr=lang_ja&ie=UTF-8
http://216.239.57.104/search?q=cache:bO0-4KTmwMgJ:homepage1.nifty.com/susho/diary/2001/02.html+HSV%E9%80%86%E5%A4%89%E6%8F%9B&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja
0120デフォルトの名無しさんNGNG
RGB⇔YUV変換なら分かるのだが
0121デフォルトの名無しさんNGNG
>>114
RGB->HSI変換式が参考Webページと異なる気がするのだが。
HSVとHSI(HSL)がごっちゃになってる?
(どちらがどういう色空間だったかは忘れたけど)
0122デフォルトの名無しさんNGNG
HSIというのは色相、彩度、明度でいいのかな
で明度は(Max+Min)/2の奴か。面倒だな
しかしよくごちゃごちゃ書いたもんだ。もう少し綺麗に書こうとは
思わないのかね。
0123デフォルトの名無しさんNGNG
ごちゃごちゃ以前に,このソースコンパイラ通らないような気がする.

括弧の対応とか,case文の中身とか
0124114NGNG
>121
rgb_data内にはunsigned char型として0〜255の値を格納しています。
その為HSI変換内で255で割って正規化しています。
あとは明度を求めるときにRGBの最大値と最小値の和を2で割って求めている点と、
彩度を求めている点でしょうか。

HSIとHSVとHSLは同じと下のページに書いてありました。
そこによるとIとIntensity、VはValue、LはLightness
http://216.239.57.104/search?q=cache:QRiStM-N1JUJ:www2u.biglobe.ne.jp/~color/all/ml_summary1501_1550.htm+HSI+HSV+HSL+value+intensity&hl=ja&lr=lang_ja&ie=UTF-8

と思ったのですがHSIとHSVは違うようで・・・
http://216.239.57.104/search?q=cache:BIysCB_YqegJ:homepage1.nifty.com/snap/room03/c02/cg/cg01_03.html+HSI+HSV+HSL+value+intensity&hl=ja&lr=lang_ja&ie=UTF-8

ここら辺が色の色相が変わる原因でしょうか?

>122>123
とりあえずソース上げてみました。
上のやつは見やすくするために全角スペース使ってる箇所があるのでそのままではコンパイラは通らないと思います。
あとUCHARはunsigned charです。
http://www.42ch.net/UploaderSmall/source/1060339287.c
0125デフォルトの名無しさんNGNG
この関数は変換した値をそのまま画像データに入れていますが,
とりあえず,色の変換だけするように機能を削ってみてはいかがですか?
(rgb_to_hsiなら,入力が1画素分のRGB値,出力が1画素分のHSI値となるように)

このままだと,テスト実行するだけのためにいちいち三次元配列を
宣言しないといけないのでちょっと面倒です.


あと,この関数の実行例なども一緒にいれてほしいです.


0126デフォルトの名無しさんNGNG
B=(max_i-(rgb_data[2][g][r]/255.0))/(max_i-min_i);
if((rgb_data[0][g][r]/255.0 - max_i) <= EPSILON){
hsi_data[0][g][r] = (B-G)*PAI/3;
}else if((rgb_data[1][g][r]/255.0 - max_i) <= EPSILON){
hsi_data[0][g][r] = (2+R-G)*PAI/3;
}else if((rgb_data[2][g][r]/255.0 - max_i) <= EPSILON){
hsi_data[0][g][r] = (4+G-R)*PAI/3;


の,(2+R-G)*PAI/3 のところは, (2+R-B)*PAI/3の間違いじゃない?
0127126NGNG
126 と同じところで

if((rgb_data[*][g][r] / 255.0 - max_i) <= EPSILON)となっているところは,
if(fabs(rgb_data[*][g][r] / 255.0 - max_i)) <= EPSILON) にしないとまずいと思う.

ここは,rgb_data[*][g][r] /255.0 と max_i が同じかどうかを判定させる目的でやっている
と思うけど, 括弧の中が負になった場合も条件を満たしてしまう.
0128126NGNG
114のいう
HSI -> RGB の変換方法を解いてみました.

(0 <= I <= 1,0 <= S <= 1,0 <= H < 2π)



I <= 0.5 のとき
  max = I(S + 1)
I > 0.5 のとき
  max = (1 - I)S + I
}

min = 2I - max

i = H / (3π) の整数部
hh = H / (3π) の小数部

0129デフォルトの名無しさんNGNG
i = 0のとき
  R = max
  G = max * hh
  B = min
i = 1のとき
  R = max * (1 - hh)
  G = max
  B = min
i = 2のとき
  R = min
  G = max
  B = max * hh
i = 3のとき
  R = min
  G = max * (1 - hh)
  B = max
i = 4のとき
  R = max * hh
  G = min
  B = max
i = 5のとき
  R = max
  G = min
  B = max * (1 - hh)
0130126NGNG
修正

>> i = H / (3π) の整数部
>> hh = H / (3π) の小数部

正しくは
i = H / (π / 3) の整数部
hh = H / (π / 3) の小数部


これでうまくいくはずです.
0131デフォルトの名無しさんNGNG
一部間違えてました ごめんなさい

129 の中身全てをこれとすげ替えてください.

d = max - min

i = 0のとき
  R = max
  G = hh * d + min
  B = min
i = 1のとき
  R = (1 - hh) * d + min
  G = max
  B = min
i = 2のとき
  R = min
  G = max
  B = hh * d + min

i = 3のとき
  R = min
  G = (1 - hh) * d + min
  B = max
i = 4のとき
  R = hh * d + min
  G = min
  B = max
i = 5のとき
  R = max
  G = min
  B = (1 - hh) * d + min
0132デフォルトの名無しさんNGNG
HSIの彩度はYHSの彩度とはずいぶんと違うものなんだな
それから別に聞かなくていいけど一言言いたい事は
色空間の変換は画素ごとに独立しているんだから
全画素にわたる反復と色空間の変換は別の関数にしたい、という事と
画素は一つの構造体(struct rgb{double r;double g;double b};)にまとめた
方が気分がいい、という事だな
0133132NGNG
と思って調べたらHSIのは普通の彩度だな
>>114のはHSVで調べると出てくるような
0134114NGNG
>125
そうですね。テストをするなら1画素に注目したほうがわかりやすいですもんね。
自分電卓使って手で求めてました・・・。
実行例は上の方にpng画像がまだあるハズです。

>126
おっしゃる通りです。
初歩的なミスを犯してました。
>127
そこの部分に関してはrgb_data[*][g][r]に格納させる値が0〜255なので問題はないかと思われます。
ですがプログラマとしてはそういった部分を気をつけるのは大切なことだと思ったので参考になりました。
>128-131
わざわざありがとうございます。早速コーディングしてみたのですが前と変わらなく・・・_| ̄|○
前というのは正確に言いますと
http://216.239.57.104/search?q=cache:LAb_Oee8lKkJ:village.infoweb.ne.jp/~ishidate/vcpp6_g3/vcpp6_g3.htm+HSI%E5%A4%89%E6%8F%9B%E3%80%80HSI%E9%80%86%E5%A4%89%E6%8F%9B&hl=ja&lr=lang_ja&ie=UTF-8
のソースをそのまま使った場合の結果です。
念の為ソースを上げておきます。コーディングミスの可能性が多分にありますので・・・
http://www.42ch.net/UploaderSmall/source/1060353992.c

>132-133
反復と変換を分けると関数の呼び出しが増えてたとえポインタで引数を渡したとしても
処理が遅くなったりしないんでしょうか?そこら辺詳しくないのでわからないのですが。
画素は確かに構造体にまとめたほうがいいですね。
あとこれは画像処理標準テキストブックを参考にしたのですが、そこにはHSI変換と書いてあり、
HSI双六角錐カラーモデルとありました。
0135126NGNG
>>134

>> >127
>> そこの部分に関してはrgb_data[*][g][r]に格納させる値が0〜255なので問題はないかと思われます。

例えば, RGB 値が (0, 255, 0) のときを考えると,

max_i = 1.0,   rgb_data[0][g][r] = 0.0  のため,

if((rgb_data[0][g][r]/255.0 - max_i) <= EPSILON){
  hsi_data[0][g][r] = (B-G)*PAI/3;
}else if((rgb_data[1][g][r]/255.0 - max_i) <= EPSILON){
  hsi_data[0][g][r] = (2+R-B)*PAI/3;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ↑ここを実行したいにもかかわらず,
}else if((rgb_data[2][g][r]/255.0 - max_i) <= EPSILON){
  hsi_data[0][g][r] = (4+G-R)*PAI/3;
}

実際は
if((rgb_data[0][g][r]/255.0 - max_i) <= EPSILON){
  hsi_data[0][g][r] = (B-G)*PAI/3;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ↑ここを実行してしまう
}else if((rgb_data[1][g][r]/255.0 - max_i) <= EPSILON){
  hsi_data[0][g][r] = (2+R-B)*PAI/3;
}else if((rgb_data[2][g][r]/255.0 - max_i) <= EPSILON){
  hsi_data[0][g][r] = (4+G-R)*PAI/3;
}

0136126NGNG
追加
rgb_to_hsi 内にやたらと / 255.0 が入っていますけど,
これをなくすように変更するだけでだいぶ単純になりますよ.

そうすれば, if( *** - max_i <= EPSILON) とやっているところも
自然と if ( *** == max_i) に置き換えられますから
0137デフォルトの名無しさんNGNG
>>134
>反復と変換を分けると関数の呼び出しが増えてたとえポインタで引数を渡したとしても
>処理が遅くなったりしないんでしょうか?

高速化は、まともに動作するものが出来てから考えればよいかと。
最初は冗長でも可読性の良いコードを書くべし。


このスレ急に盛り上がってきたな。
0138114NGNG
>135
そうですね・・・私が馬鹿でした。
ちょっと考えればわかることでした。
青が赤になってしまうのはここが原因だったようです。
>136
言われたとおり正規化したRGB値を格納する配列を作ってみました。
最初からこうしていればハマらなかったですね。

>137
盛り上がってきたようでその実私ばかり書き込んでるわけで。

126氏のプログラムとWEBのサンプルコードを比較してみました。
http://www.42ch.net/UploaderSmall/source/1060402857.png

やはり明度判定のある方が再現性が高いようです。
レスくれたみなさん。特に126氏。どうもありがとうございました。
分からないことがあったらまた来ると思いますのでそのときはよろしくお願いします。
0139デフォルトの名無しさんNGNG
>>やはり明度判定のある方が再現性が高いようです。
RGB->HSI 変換、HSI->RGB変換は可逆変換なので、
完全に元に戻せるはずです。なので、
再現性うんぬんでなくて、正しいか間違っているかどちらかということになります。

114さんのHSIは双六角錐型、
WEBで紹介しているHSIは(単)六角錐型で異なる色空間(こちらはHSVと呼ばれることが
多いみたいです)なので、114さんがやったことは、結局下のようなことになります。

・RGB -> HSI 変換
・HSI を HSVとして読む
・HSV -> RGB変換

HSI と HSV はそれぞれ異なる色空間なので、最初のRGB値と最後のRGB値は
変わっていて当然なわけです。


いきなり画像を使って比較するのではなく、RGB値やHSI値を直接いれて
比較してみることをお勧めします。
0140114NGNG
>>やはり明度判定のある方が再現性が高いようです。
>RGB->HSI 変換、HSI->RGB変換は可逆変換なので、
>完全に元に戻せるはずです。
ここに関してはとあるWEBページでHSV変換は

>もともと256階調のものをかたや0〜2π、かたや0〜1に変換するんだから、誤差くらい出る。
>それに、Hが同じでもVやIが低いとかなり色は不安定になる。
>そもそも、HSVへの変換は線形式使ってるわけじゃないんだから、完全な逆変換なんて存在しない。
これを読んでたために再現性という言葉を用いたわけですが、HSI変換は違うのでしょうか?
私も計算中の型落ち等で可逆変換は無理だと思います。

結論を言いますと明度判定のある逆変換がHSI逆変換(126氏の)で
無い方(WEBの)がHSV逆変換ということで、HSI変換で生成されたものに
HSI逆変換を施したのだからHSV逆変換を施したものより似ているのは当たり前である。
ということでよろしいでしょうか?
0141デフォルトの名無しさんNGNG
>> HSI逆変換を施したのだからHSV逆変換を施したものより似ているのは当たり前である。
そうです。

(114氏の)HSI と,(WEBの)HSV では、 H の変換の仕方は同じですが、
SI と SV の変換の仕方がそれぞれ違います。
そのため、あべこべに使うと適切でない変換をしてしまうことになります。

>> >そもそも、HSVへの変換は線形式使ってるわけじゃないんだから、完全な逆変換なんて存在しない。
>> これを読んでたために再現性という言葉を用いたわけですが、HSI変換は違うのでしょうか?
>> 私も計算中の型落ち等で可逆変換は無理だと思います。

とりあえず、理論上は可逆にできると思います。
そして、少なくともこのケースでは充分な精度を持てば完全に可逆にできます。
証拠のソースも示しておきますね。

ソースの説明
(1) ある rgb 値を用意
(2) rgb -> hsi に変換
(3) hsi -> rgb に変換
(4) (3) で求めた rgb 値と (1) の rgb 値の差を求める.

全ての rgb 値についてこの処理をして、 (4)の和を求めます。
その和が 0 であれば誤差 0 といえます。

rgb それぞれ 8ビット(=256種類)ずつ、つまり、 256^3 色分だけ求めますので
かなり処理時間がかかると思います。なるべく速いマシンでやって下さい。

0142デフォルトの名無しさんNGNG
#include <math.h>
#include <stdio.h>

#define PI 3.14159265358979
#define PI2 (PI * 2.0)
#define PI_3 (PI / 3.0)

//HSI双六角錐カラーモデル
static int max3(int x, int y, int z) {
 int i, a[3], max;
 a[0] = x;
 a[1] = y;
 a[2] = z;
 max = a[0];
 for (i = 1; i < 3; i++){
  if (max < a[i]) max = a[i];
 }
 return max;
}

static int min3(int x, int y, int z) {
 int i, a[3], min;
 a[0] = x;
 a[1] = y;
 a[2] = z;
 min = a[0];
 for (i = 1; i < 3; i++){
  if (min > a[i]) min = a[i];
 }
 return min;
}
0143デフォルトの名無しさんNGNG
void rgb_to_hsi(double *hsi, unsigned char *rgb){
 double min, max, d;
 double r, g, b;

 r = rgb[0]; g = rgb[1]; b = rgb[2];

 max = max3(r, g, b);
 min = min3(r, g, b);
 d = max - min;

 hsi[2] = (max + min) / 510.0;
 if (max == 0.0){
  hsi[0] = 0.0; hsi[1] = 0.0;
 }else{
  if(hsi[2] <= 0.5){
   hsi[1] = d / (max + min);
  }else{
   hsi[1] = d / (510 - max - min);
  }
  if(rgb[0] == max){
   hsi[0] = (g - b) / d * PI_3 ;
  }else if(rgb[1] == max){
   hsi[0] = (2.0 + (b - r) / d) * PI_3;
  }else if(rgb[2] == max){
   hsi[0] = (4.0 + (r - g) / d) * PI_3;
  }
  if (hsi[0] < 0) hsi[0] += PI2;
 }
}

0144デフォルトの名無しさんNGNG
void hsi_to_rgb(unsigned char *rgb, double *hsi){
 double H, S, I, hh;
 double max, min, d;
 int i;
 H = hsi[0];S = hsi[1];I = hsi[2];
 hh = H / PI_3; i = (int)hh; hh -= i;
 // H = i + hh (i : 整数部, hh : 小数部) (0 <= H < 6)

 if (I < 0.5) max = I * (S + 1.0);
 else max = (1.0 - I) * S + I;
 min = 2.0 * I - max; max *= 255.0; min *= 255.0; d = max - min;
 max += 0.5;min += 0.5; //四捨五入
 switch(i){
  case 0:
   rgb[0] = max;   rgb[1] = hh * d + min;   rgb[2] = min;  break;
  case 1:
   rgb[0] = (1 - hh) * d + min;   rgb[1] = max;   rgb[2] = min;  break;
  case 2:
   rgb[0] = min;rgb[1] = max;
 rgb[2] = hh * d + min;  break;
  case 3:
   rgb[0] = min;rgb[1] = (1 - hh) * d + min;
rgb[2] = max;  break;
  case 4:
   rgb[0] = hh * d + min;rgb[1] = min;rgb[2] = max;  break;
  case 5:
   rgb[0] = max;rgb[1] = min;
rgb[2] = (1 - hh) * d + min;  break;
 }
}
0145デフォルトの名無しさんNGNG
int main(){
 unsigned char rgb[3];
 int i, j, k;
 double sum, sum_prev;
 double hsi[3];
 sum = 0.0;
 for (k = 0; k < 256; k++){
  for (j = 0; j < 256; j++){
   for (i = 0; i < 256; i++){
    sum_prev = sum;
    rgb[0] = i; rgb[1] = j; rgb[2] = k;
    rgb_to_hsi(hsi, rgb);
    hsi_to_rgb(rgb, hsi);
    sum += abs(rgb[0] - i) + abs(rgb[1] - j) + abs(rgb[2] - k);
    if (sum > sum_prev){ //誤差がでたときに表示されます
     printf("(%d, %d, %d) -> (%d, %d, %d)\n", i, j, k, rgb[0], rgb[1], rgb[2]);
    }
   }
  }
 }
 printf("sum : %f\n", sum);
 return 0;
}



//全角スペースをタブか半角スペースなどに変換してからコンパイルしてください.
0146デフォルトの名無しさんNGNG
補足

rgb それぞれ8ビットずつのとき、どれくらいの精度があれば完全に可逆にできるか
検証してみました。
最も彩度の高い色がでる領域(HSI なら S=1.0, I=0.5 HSV なら S=1.0 V = 1.0)で、
赤(255, 0, 0)からその隣の色(マゼンタ(255, 0, 255)か黄色(255, 255, 0)) に移動するときに、 H に必要な精度を考えます。
(この移動で SI や SV は変わりません)
赤と黄色の中間色は 赤と黄色を含めて 256 通りあります。
なので、その間で H が 256 分割できるだけの精度(つまり 8 ビット)が必要になります。
白と黒を除くと原色は 6 個あるので、 H は全体で 256 * 6 分割 必要になります。
よって、2^10 < 256 * 6 < 2^11 なので、 H は 11 ビット必要となります。
今度はS=0からS=1.0に移動する場合を考えます。
Sの変化に対して最もよく色が変化する点はHSI なら I = 0.5、HSV なら V = 1.0です。
(S=0のとき、HSIは灰色(127,127,127)、HSVは白(255, 255, 255))
そこから、例えば赤(255, 0, 0)に移動することを考えます。
すると、HSIでは 128 分割、 HSV では 256 分割必要なので、多くても Sは 8 ビットあれば
充分です。
Iについても白と黒で同様に考えれば、 8ビットあれば充分です。

計算誤差に対する遊びを1〜2ビット用意したとしても
H 13ビット S 10ビット I 10ビット V 10ビット あれば誤差0にできるということになります。
ちなみに 142-145 のソースでは 全て double型(64ビット)でやっているので、この条件を
余裕でクリアしてます。
0147デフォルトの名無しさんNGNG
もうひとつ 連投スマソ

>> 完全な逆変換なんて存在しない。

これがいいたいことは、こういうことかもしれないです。

H = 120度
S = 0
V = 0
↓ RGB へ 変換
R = G = B = 0 ← ここで H (Sも?)の情報が消える
↓ HSV へ 変換
H : 不定
S : 不定?
V = 0

HSV -> RGB -> HSV とやると、元の HSV の値は必ずしも復元できるとは限らないので、
そういう意味では互いに完全に可逆の関係とはいえないかもしれないです。

ですが、逆は可逆になると思います。
R = G = B = 0
↓ HSV へ 変換
H : 不定
S : 不定?
V = 0
↓ RGB へ 変換
R = G = B = 0 ← H, S がどんな値でも V=0 なら黒
HSI も I=0 のときに黒になることに加えて I=1 のときもH, S の値に関係なく白になるだけで
あとはだいたい同じかと思います。
0148デフォルトの名無しさんNGNG
俺も書いてしまってもったいないから消す前に張っておく。

hsi_to_rgb 及び rgb_to_hsi
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=135&fi=no
0149デフォルトの名無しさんNGNG
>>148
見事に整頓されてますね。

rgb_to_hsi と hsi_to_rgb の 引数 row, column は関数呼び出し側で&をつけるだけで
不要になるような気がしますがいかがでしょうか?
0150148NGNG
>関数呼び出し側で&をつけるだけで
えーとポインタを渡すということ?

それからやはり浮動小数の0比較には誤差切捨てが必要
double chop(double d){ return fabs(d)<epsilon ? 0 : d ;}
としてif(chop(d)==0)...;、
あと構造体の変換にはコンストラクタがほしいなあ
0151デフォルトの名無しさんNGNG
久しぶりにもりあがってきました。
0152149NGNG
>>えーとポインタを渡すということ?
えっと、こんな感じで

HSI hsi[HEIGHT][WIDTH];
RGB rgb[HEIGHT][WIDTH];

.

for (j = 0; j < height; j++){
 for (i = 0; i < width; i++){
  rgb_to_hsi(&hsi[j][i], &rgb[j][i]);
 }
}

0153114NGNG
>139
遅くなり申し訳ありません。
コンパイルして実行してみました。
そうしたらグレースケール時?にGreenの値が消えていたので
ソースをよく見たところ彩度が0の時の判定が抜けてました。
if (S == 0.0) {rgb[0] = rgb[1] = rgb[2] = I * 255.0; return;}
その他は問題がありませんでした。
仰るとおり可逆変換ですね。
ここまで細かく検証していただきありがとうございます。

>148
どうもありがとうございます。
RGB2RGB_INT内での丸め誤差と彩度の判定が無い以外問題はありませんでした。

他の人のソースコードはとても参考になります。
お二人ともどうもありがとうございました。
0154山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0155デフォルトの名無しさんNGNG
クロマキーでは駄目なのか
0156デフォルトの名無しさんNGNG
白黒画像なんだから、クロマキーは使えないでしょ。
0157デフォルトの名無しさんNGNG
グレイスケールの画像で、
雲がかった濃淡のある背景にパーティクルが乗っているのですが、
パーティクルの厳密なサイズが知りたいのでサイズに影響を与えることなく
背景を除去する方法ってありますか?

今のところは平均化して差分をとったりして模索中です。

パーティクルはひょうたんみたいに重なってることもあるので
くびれが細っちゃったりするのも困り者なのですが。
0158デフォルトの名無しさんNGNG
微妙にスレ違いな気がするんだけどここで質問。
ベクトル量子化系の圧縮を自作したんですが、性能的には、
圧縮率は7〜8倍程度、幾何学的な単純な図形やグラデーションとかだと
10〜14倍で、視覚上の劣化がほぼ判らないと思います。
ただ、それ以上圧縮しようとすると大きく画がひずみます。
展開速度的にはjPEGの7割程度です。
こういうのだと、どのようなところでの使用が考えられますかね?
ちなみに、動画圧縮に応用しようと考えているのですが、
高圧縮領域での画質が良くないことがネックになって苦戦してます。
0159デフォルトの名無しさんNGNG
>>158
当てずっぽうで書いてしまいますけど、
幾何学的な図形に向いているということであれば、
プレゼンテーションソフトで作った動画の圧縮とか?

用途はピンポイントでも、需要はあるかも。
0160デフォルトの名無しさんNGNG
>>158
えと、圧縮率がJPEGより10倍程度優れているの?
もしそうならば、>>159 のような用途が見えてくる。

しかし、圧縮率がJPEGあるいは幾何学模様用圧縮に劣るならば、
展開速度の遅さは致命的。
0161デフォルトの名無しさんNGNG
言い方がヘンでしたね。
素のBMPに対して、1/7〜1/14、
JPEGの展開速度の7割というのは、JPEGが50msなら35ms程度で
開くという意味です
0162デフォルトの名無しさんNGNG
もしもベタ塗り画像にも効果があったら
アニメのリアルタイムエンコーディングとかにも利用できるかも?
0163デフォルトの名無しさんNGNG
画像処理で検索してここが出たんですけど
オークションとかに服を出すために、自分で服を着て出す時
そのままじゃ出せないので、顔にモザイクや、マークをかぶせて隠してる人が
沢山いるんですけど、あれってどうやってやるのかなーと思ってるんですけど
どこかそういう話題に相応しいスレってありますか?スレ違いですみません。
0164デフォルトの名無しさんNGNG
>>163
というか、普通に板違い

誘導先探すのも面倒なので、適当に答えると
Photoshopなどの画像エディタ使え
黒塗りくらいなら、ペイントでもいいしな

ツールの使い方はここで聞くなよ
0165デフォルトの名無しさんNGNG
サンクスです
0166デフォルトの名無しさんNGNG
>>163
自分でモザイク処理したい、ってんならここでもいいけどね。
0167デフォルトの名無しさんNGNG
BMPファイルを読み込み、配列にRGB値を格納したのですが、
BMP内で多く使われている色の上位8色を降順で表示させるためには
どうすればいいでしょうか?
言語はCです。
よろしくお願いします。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=147
0168デフォルトの名無しさんNGNG
int counter[256*256*256];
を用意して、出現した色ごとに counter[R*65536+G*256+B]++; して、
それが終わったら降順にソートしる。

省メモリでやろうとすると、結構奥が深い問題。キーワードはハッシュだ。
0169167NGNG
>>168
レスありがとうございます。
とりあえずカウントできました!
もうちょっとがんがります(`・ω・´)
0170デフォルトの名無しさんNGNG
背景差分に関するいいHPありませんか?
その応用のHPしかでなくて…
0171デフォルトの名無しさんNGNG
>>170
「いいHP」だけじゃ何を知りたいのかわからん。
0172デフォルトの名無しさんNGNG
簡単にいうと、元となる背景があって、それとそれに物体を置いたものがあるとしたら
どうやって、物体だけを抽出するのかを書いてあるHPがいいんですが…
本でもいいのでお願いします。
0173デフォルトの名無しさんNGNG
輪郭抽出とは違うん?
0174デフォルトの名無しさんNGNG
>>172
普通は、背景と物体だけを抽出した物が初めにあって、背景に物体を置いた物をつくるんだよ。
0175170NGNG
>>174
それだと
背景をAとして物体をBとした時
A+Bの画像を作るって事ですよね?
漏れがしたいのは
(A+B)-A=B
って感じで物体だけを取り出したいんです。
0176デフォルトの名無しさんNGNG
>>175
A+Bの画像を自分で作ったんじゃないんなら、
Bを取り出す完璧な方法はない。
0177デフォルトの名無しさんNGNG
>>175
背景差分法はAとA+Bを部分(画素)ごと比べて、
変化していればB由来、変化していなければA由来
という事だろうが、これ以上の何が知りたい?
0178デフォルトの名無しさんNGNG
>>177
そもそも自分で作ってないなら、背景が無いだろ。
0179デフォルトの名無しさんNGNG
こういうこと?

ttp://www.cs.tau.ac.il/~idrori/completion.pdf
0180デフォルトの名無しさんNGNG
AAAAABBBBBAAAAA

という配列からBの部分だけ抽出するマスク

000001111100000

を作ればOK!!これでBだけ取り出せるぜ!!
0181デフォルトの名無しさんNGNG
>>178
背景はデジカメで2枚写真を撮って1枚目がまだ物体を置いてない物2枚目が物体を
置いたものって感じです。

>>179-180
理論的にはわかってるつもりなんですけどそれを実現するためのプログラムを
どうやって作ったらいいのかわからないのです…
0182デフォルトの名無しさんNGNG
ちょっとでもずれてたら無理だな
0183デフォルトの名無しさんNGNG
デジカメは固定してます。
綺麗に結果がでなくてもある程度認識できればオッケーなんですよ。
0184デフォルトの名無しさんNGNG
1枚目と2枚目を画素ごとに比較。
差が一定以上なら物がある、と判断。

これでいい?
0185デフォルトの名無しさんNGNG
ついでに、隣接する画素が背景か物体かを判定して、
オキュパイドドメインで判定を行うと、精度が向上する。
0186デフォルトの名無しさんNGNG
C = 二値化( (A+B)-A )
結果 = A * C
0187デフォルトの名無しさんNGNG
フォトショップのトーンカーブファイルを読み込んで使いたいのですが、フォトショップでは制御点間をどういう補間してるのか知りませんか?

0188デフォルトの名無しさんNGNG
スプラインじゃなかったっけ?
0189デフォルトの名無しさんNGNG
そうみたいです
スプラインで描いてみたら
フォトショップのカーブダイアログのと
ぴったり重なりました
0190デフォルトの名無しさんNGNG
TIFFのG3、G4の圧縮について資料を探しています。

これらの圧縮について、
解説してある書籍など、ご存知でしたら教えて下さい。

いちおう、libtiffのソースは拾ってみたのですが、
いまいち理解できなかったので・・・
やっぱり、ITU-Tの勧告書買うしかないんでしょうか?
0191デフォルトの名無しさんNGNG
>>190
圧縮使ったこと無いので見当違いかもしれませんが、
http://partners.adobe.com/asn/developer/pdfs/tn/TIFF6.pdf
の49ページから一応CCITTのエンコード関係が書かれています。
# しかし、質問の内容から既に読んでいそうだな〜
0192デフォルトの名無しさんNGNG
>>191
レスありがとうございます。

非圧縮のTIFFはこの仕様書で十分だったんですが、
圧縮は・・・私の英語力が足りないのか、
これだけでは書けそうにありません。

できれば、日本語の資料で(これを最初に書くべきでした)
良いものがあればご教授ください
0193デフォルトの名無しさんNGNG
> 192
この本、
http://www.cqpub.co.jp/hanbai/books/32/32641.htm
は当たってみました?
0194デフォルトの名無しさんNGNG
>>193
ありがとうございます。
トランジスタ技術は盲点でした・・・

さっそく、アマゾンで注文してみました。
0195190NGNG
ぐは、何を思ったか、NO.63を買ってた・・・欝だ詩嚢
0196デフォルトの名無しさんNGNG
高機能な動画像処理ソフトウエアを捜しているのですが,
HALCON ってどうなのでしょうか?
世界最高峰って本当ですか?
0197デフォルトの名無しさんNGNG
>>196
ここは画像処理プログラミングのスレなので
プログラミングに関係がないなら他を当たってくれ
0198デフォルトの名無しさんNGNG
>>197
VC,VBに変換できるらしいし,
HALCON Developer's Kit で開発もできるらしい
0199デフォルトの名無しさんNGNG
質問のふりした宣伝以外何物にも見えんな
0200デフォルトの名無しさんNGNG
自社製品を世界最高峰だなんて自画自賛してしまうスレ
に行ってください
0201名梨産NGNG
陰線処理やレイトレなんかの3D系のスレってあります?
0202198NGNG
単順に画像処理ライブラリとしての評価を聞きたいと思っております.
どなたか利用したことは無いでしょうか?
他に様々なアルゴリズムが揃ったライブラリって無いでしょうか?(商用,非商用問わず)
ご教示願います.
0203デフォルトの名無しさんNGNG
>>196
あれくらい簡単に作れる。
ていうかあのようなものを作っている人のスレだし。
0204デフォルトの名無しさんNGNG
>>196
誰が世界最高峰だなんて言ってんの?
ソース出せ
0205デフォルトの名無しさんNGNG
libjpeg 使って画像表示しようとしてますが、うまくいきません。
モノクロ画像になってしまうし、横幅が約3/4になってあとの1/4は
なんていうか左端の部分が繰り返すみたいに出てしまいます。
使い方が悪いんだと思うんですがどこが悪いんだかよくわかりません。
こんな症状にありそうな原因ってなんでしょうか?
0206デフォルトの名無しさんNGNG
>>205
http://tanack.hp.infoseek.co.jp/jpegdecode.html
0207デフォルトの名無しさんNGNG
>>206
情報どうもありがとございます。参考にします。
0208205NGNG
なんとか解決。原因というか、いじった所は libjpeg 関連ではなく、
Window 絡み(X Window)の部分とあいなりました。XImage を使った
のですが、どうも使い方が分かりにくい代物です。
0209デフォルトの名無しさんNGNG
http://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html
↑この中でどのように差分を求めているのでしょうか?
計算式と計算過程を教えてください。
0210デフォルトの名無しさんNGNG
動画像処理ライブラリ&言語でこれはオススメ!ってのあります?

具体的な用途はカメラからの入力画像から
手の形などを認識させるといった感じなんですが・・・

>>209
error 403(アクセス不可)・・・
0211デフォルトの名無しさんNGNG
>>210
アセンブラ
0212デフォルトの名無しさんNGNG
>>210
言語は何でもいい。
適当に二値化してパターンマッチングすりゃいい。
ここはそういうライブラリーを作るためのアルゴリズムを語るところなので
出来合いのライブラリーを探したければ各環境ごとのスレに行ってくれ
0213デフォルトの名無しさんNGNG
ステレオ画像における対応点探索の良いアルゴリズムってありませんか?
精度がある程度求められるので、特徴ベース法ではないものが良いのですが…
0214213NGNG
アドバイスキボンヌ
0215デフォルトの名無しさんNGNG
フラクタル圧縮って結局実用化されているんですか?
特許のために情報が表に出てこないらしい上に、
特許を持つIterated Systems社のページには繋がらないので何がなんだか。
0216209NGNG
http://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/index.html
↑のサイトは、アクセス不可になることが多いので、
http://kenkyu2.hp.infoseek.co.jp/cap26.cpp
にも置きました。
差分を求めている方法を教えてください。
また、計算式と計算過程を教えてください。
お願いします。。
0217デフォルトの名無しさんNGNG
s =0.0;
for( i = 0;i < n ;i++){
  s = s + (buf2[i]= fabs( buffer[i] - buf3[i] ));
}
...
if( s/n > 10 )
  Beep(1000,100);


単純に差分をとっているだけだな
0218デフォルトの名無しさんNGNG
loadimageはprintfみたいに単品で使えますか??
0219デフォルトの名無しさんNGNG
>>218
使えません
0220デフォルトの名無しさんNGNG
s =0.0;
for( i = 0;i < n ;i++){
  s = s + (buf2[i]= fabs( buffer[i] - buf3[i] ));
}
について、
buf2は、何を示しているのでしょうか?
bufferは、何を示しているのでしょうか?
buf3は、何を示しているのでしょうか?
プログラム上の計算式ではない、式をおしえてください。
0221デフォルトの名無しさんNGNG
>>216
ソース見るまでもない。

減算するだけ。

1コマ目から2コマ目を引けば、
変化の無い部分は何も残らず、変化のあった部分だけが残る。
0222デフォルトの名無しさんNGNG
bufferは今現在のフレーム、添え字iでbuffer_iとしてi番目の画素
buf3は一つ前のフレーム、添え字iでbuf3_iとしてそのi番目の画素
buf2は今のフレームと一つ前のフレームの差分の絶対値を収める

buf2_i=|buffer_i-buf3_i|
0223デフォルトの名無しさんNGNG
わざわざ画像を抜き出すなら変化しているところの
新しい値(か古い値)を抜き出すのが普通だろうに
なぜ差分なのかはよく分からない。
0224デフォルトの名無しさんNGNG
>>223
「変化しているところ」の検出はどうするの?
0225デフォルトの名無しさんNGNG
背景と色が殆ど同じ動体を検出するのって
やっぱり背景差分とる方法じゃまずいかな?

昨日、来年の研究室配属の初顔合わせがあって
教授にウンコと大木の例えでその話したら
「ウンコが白くなるまで待ったら?」とか言われたYO。
場を和ませようとした俺の心遣いを無にしやがって・・・!
(´;ω;`)
0226デフォルトの名無しさんNGNG
教授も場を和ませようとしたんじゃないの?
で見事に二人してこけたわけだ
0227デフォルトの名無しさんNGNG
今更ですが、
JPEGでは短時間離散コサイン変換が使われているのですか?
DCT使われていると知ったんですが、8×8ブロックごとにフーリエ変換
らしいので、窓フーリエつかってるのかと思ったんですが。。。
0228デフォルトの名無しさんNGNG
>>227
とりあえず、自分の書いた文章をもう一度嫁。日本語になってない。
JPEGは、実装はいろいろだけど、原理はDCT。
0229デフォルトの名無しさんNGNG
VB6.0を使用していますが
bmp画像をRGB各成分3つに分解する方法が、さっぱりわかりません。
本とか探してもなかなか見つかりません。
BMP→R成分だけの画像 BMP→G BMP→B というプログラムを教えて欲しいです。
0230デフォルトの名無しさんNGNG
Windows BMPならばパレット形式とRGB形式がある
0231デフォルトの名無しさんNGNG
>>229
ぐぐったら、
ttp://rd.vector.co.jp/soft/dl/data/art/se027618.html
DIBフォーマットの説明書ってのがあった。これみて、直接読み込め。
24ビットのBMPなら、ラインのパディングバイトに気をつければすぐ出来るだろ。
0232デフォルトの名無しさんNGNG
CG板で質問したところ、ム板行ったほうがいいんじゃね?
と言われたため、ここで質問させてください。

BMPについて、オーム社のC言語で学ぶ実践画像処理を参考にしたところ、
RGB24ビット無圧縮で記録されたBMP形式では
ヘッダ54バイト、BGR・BGR・BGR・BGR・・・(画素分)
というように記述されているとわかりました。
つまりファイルサイズは、縦×横×3+54(バイト)で求まるはずです。

ところが、実際にファイルサイズを確認してみたところ、
この式の通りの画像もあれば、数十〜数百バイト(画像が大きくなればもっと?)分だけ
大きくなっている画像もありました。
上記の式を元にしたBMP読み込みのプログラムを書いたのですが、
やはりと言うか、この式で求まるファイルサイズより大きくなる画像では
正常に読み込めませんでした。

BMPで保存する方法としては、Photoshop、Vix、IrfanViewで試したのですが、
ソフトによって結果が変わるのではなく、画像ごとに決まった結果となりました。
つまり、同じPhotoshopで保存した画像でも、上記の式の通りのファイルサイズもあれば
それより大きくなるものもあるのです。
いずれもパレットは使用しないように設定して保存しています。
バイナリエディタで開いてみたところ、理論値よりファイルサイズが大きくなる画像では、
通常のヘッダ54バイト、色情報に続いて、ファイルの終わりに意味不明の情報が
入っていました。(何を表しているのかわからない値00、FF、80などの羅列)

ファイル末にある、余分な情報は何でしょう?
また、式をどう変更すべきなのでしょうか?
0233デフォルトの名無しさんNGNG
>>232
すぐ上のレスも読もうw
ケツに付いてるのはMSDNによるとProfileData(optional)らしい。
0234デフォルトの名無しさんNGNG
>>232
1ライン分のデータは4byteにアラインメントされたりするんだけど
それが原因じゃなくて末尾のゴミが原因なら
そんなものは無視すりゃいいだろう
0235デフォルトの名無しさんNGNG
>>232
ピクセルのRGBまでのオフセットは、54バイトと決め打ちしてはいけない。
BITMAPFILEHEADERからオフセットを取得すべき。

最も一般的な24ビットフルカラーBMPファイル全体の構造は

BITMAPFILEHEADER *1
BITMAPINFOHEADER *2
(カラーテーブル)
RGBデータ

という感じなので、わからないことがあったらBITMAPFILEHEADER/
BITMAPINFOHEADERで検索してみよう(54バイトというのは1,2の
合計)。
0236229NGNG
ありがとうございます。
RGBに分けれたのですが、その後セーブをしても元の絵がセーブされてしまいます。
画像処理後の絵をセーブするにはどうすればいいのでしょうか?
0237デフォルトの名無しさんNGNG
画像処理後の絵を保存すればいいんじゃないかな
0238デフォルトの名無しさんNGNG
>>237
マリ
0239デフォルトの名無しさんNGNG
>>236
再現させることが可能なソースをどこかに置いて
そのURLを晒せ
0240デフォルトの名無しさんNGNG
>>236
分けれた、ってのは何したの?
読み込んだRGBをいじらないでまたそのRGBデータを保存すれば、当然
「セーブをしても元の絵がセーブ」されるよ。

あと、画像処理をする時には読み込んだBMPをそのまま使うのではなく
一度BMPから自分でDIB(BITMAPINFOHEADER+RGBデータ)を作ってその
DIBを処理した方が確実かも。そして、保存する時は改めてDIBからBMP
のバイナリイメージを作る。このあたりの処理を自分で書いてみれば、
DIB/BMPの構造も理解できるし。

一番よいのは、最初に24ビットBMPから32ビットDIBを作るクラスなり
関数なりを書いてしまうことだね。画像処理を行う時には、1ピクセル
1DWORDで扱える32ビットDIBの方がずっとわかりやすい。
0241デフォルトの名無しさんNGNG
連続画像(心臓の連続CT画像)の変化を計測したいんだけど
動きの変化を追っていく方法にはどういうのがあるの?
あと、ほとんど動きが無い部分=変化なし
一定以上動きある部分=変化あり、みたいな感じにするにはどうすればいいの?


0242デフォルトの名無しさんNGNG
>>241
情報少ないから詳しくコメントできないけど、
そういう目的なら勾配法でオプティカルフローを計算すればいいんじゃない?
0243デフォルトの名無しさんNGNG
>>242
心電図とCT画像の同期と、ある程度の心臓の動きの様子を調べるのが目的だったから
簡単にするために2値化で心臓の輪郭だけ抽出して動き推定、って考えてたんだけど
その勾配法という方法のほうが原画像のまま詳しく調べられて便利かも。難しそうだけど

0244232NGNG
試しに、画像の比率が変わるのは無視して512*512にサイズを変更してみたら、
理論値との誤差がほとんどなくなりました。
といってもまだファイル末尾に数バイトのゴミが残っていたので、
思い切ってそれを削除したところ、画像に変化はなく、
正常に読み込めるようになりました。

まだまだ勉強が必要ですね。
レスありがとうございました。
0245229NGNG
>>237
そうしたのですが、ダメでした。
>>239
ここに書くのはまずいですかね。
今から出かけるので調度いいアプロダ探せません。すみません。
>>240
VB6.0で「画像データロード」で24bitBMPが表示されます。
次にコマンドクリックすると、表示された絵が少しずつ赤くなります。
絵が赤くなったあと、セーブを実行しているのですが元の画像がセーブされます。

やっぱりどこかでソース晒した方がいいですね。
0246デフォルトの名無しさんNGNG
>>245

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
0247デフォルトの名無しさんNGNG
こんな感じに外部の画像ファイルを自分のページで加工ってできるの?
ttp://images.google.co.jp/images?hl=ja&lr=&ie=UTF-8&oe=UTF-8&q=a
image magickで外部ファイルって加工できないの?
0248デフォルトの名無しさんNGNG
コイの動きを画像処理して、毒が流し込まれたか調べるんだってよ。
プログラムが糞で、やはり動かなかったらしい。

おまいら、こんな簡単な画像処理さえ出来ん役所のやつらに
納税者として何か言ってやれよ

> コイセンサーは取水場に2つあり、監視水槽(容量60リットル)5個で飼って
>いるコイ8匹が、有害物質を感じて異常な動きを示した場合、コンピューターで
>府村野浄水場に自動警報を送る。浄水場職員は、別に設けた観察水槽
>(同300リットル)のコイ8匹の様子をモニター画面で確認、対応策をとる。
>府は1994年以降、計3か所で導入している。

役所の板
http://society.2ch.net/test/read.cgi/koumu/1060611748/559
http://society.2ch.net/test/read.cgi/koumu/1060611748/l50
0249229NGNG
>>246
ありがとうございます。
ソースを載せたので見てくれるとありがたいです。
画像処理後のセーブが出来ません。
「画像処理VB」というスレで立ってます。
よろしくおねがいします。
0250デフォルトの名無しさんNGNG
>>248
簡単かなぁ・・・ 動きの認識だし、魚って鳥と同じで3次元空間で動き回るし・・・
0251デフォルトの名無しさんNGNG
大量の毒を水槽に入れたら暴れて死にますが、
少量の毒を少しずつ与えれば動きが鈍くなって知らないうちに死にます。
後者の場合、コンピュータで判断なんて出来ないと思います。人間でも難しいですから。
0252デフォルトの名無しさんNGNG
動かなくなったら死亡、ではだめ?
0253デフォルトの名無しさんNGNG
腹が上を向いたら死亡
0254デフォルトの名無しさんNGNG
>>252
死んでも、水の流れとかで、多少は動くと思われw
0255デフォルトの名無しさんNGNG
動きの激しさは差分の二乗の総和で出るかも
0256デフォルトの名無しさんNGNG
昔から疑問なのですが、多角形を塗りつぶす処理として
ソリッド・スキャン・コンバージョンの他に色々な方法が
あると思うのですが他の方法としては、どのような方法が
あるのでしょうか?
検索キーワードだけでも良いので教えてください。
0257初心者NGNG
すこし場違いな質問かもしれませんがよろしくお願いします。
現在デジタルビデオカメラでとった動画をUSB又は、IEEEとかで
取り込んでリアルタイムで解析して顔部分を抽出するといったことを
やってみたいのですが特別なキャプチャーボードなしでできるのでしょうか?
アルゴリズム的にはRGB−>HSV変換後に膨張圧縮といったモルフォロジ処理と
ラベリングによってノイズ除去して肌色を抽出しようと思っています。
c++の知識は少しあるのですがデバイスやwindows関連の方はよくわからないので。
調べたらvideo for windows とかdirect show等が使えそうかと思ったのですが。
一般に動画を汎用PCでリアルタイム解析したい時はどういった方法があるのか
どなたかご教授ください〜
0258デフォルトの名無しさんNGNG
>>257
PCカメラ買えばいいんでない?
ソフトはListcamか何かで。
0259デフォルトの名無しさんNGNG
書き込みの内容が初心者じゃねぇ!!と思ってるの俺だけかよ(´∀`;)y-~
0260デフォルトの名無しさんNGNG
PS版メモ2の画像展開アルゴリズムは分かりませんか?
0261デフォルトの名無しさんNGNG
徳
0262デフォルトの名無しさんNGNG
>>257
余計なお世話だけど、IEEEって学会の名前だよ。
そこで標準化された規格にIEEEホニャララって番号が付いてて、JISとかISOとか
ANSIと同じようなもの。
例えばプリンタポートはIEEE1284、100BASE-TXはIEEE 802.3u、1000BASE-Tは
IEEE 802.3ab…というように、コンピュータのインターフェースにはほとんど
この型番が付いている。
だからIEEE1394のことをIEEEと呼ぶのは(2chではよく見かけるが)、とても
恥ずかしいこと。
0263デフォルトの名無しさんNGNG
>>262
読み方は「アイ・トリプル・イー・いちさんきゅーよん」でおk?
0264デフォルトの名無しさんNGNG
すみませんでした。
知ったかぶりしてますた。
0265デフォルトの名無しさんNGNG
>>262
俺も昔ハードディスクをハードと読んだり
Mpegでも何でもないものをMpeg-4と言ったり
応答遅延をPingと連呼したりする連中に反感を覚えたものだが
今では分かるならば許容する境地に至った。
お前はまだまだだな。
0266デフォルトの名無しさんNGNG
MTFをFITSに変換するプログラムがほしいんだけど、誰かもってね?
0267デフォルトの名無しさんNGNG
>>266
MTF? FITS?
何それ?初めて聞いた。
0268デフォルトの名無しさんNGNG
>>266
http://www.astroarts.co.jp/products/stlimg4/spec/overview-j.shtml
0269デフォルトの名無しさんNGNG
動的輪郭抽出モデル Snakes を
C言語で実装したprogramどこかに
おちてませんか
0270デフォルトの名無しさんNGNG
>>265
君はモニターをテレビと呼ぶ連中まで許容できるのか?
0271デフォルトの名無しさんNGNG
2D-DFTはなんとなく理解できたんですけど、

短時間フーリエの画像への適用と、そしてどんな結果になるのかよくわかりません。

ウェーブレットぽい結果になるのかな。
0272デフォルトの名無しさんNGNG
俺はCD-ROMをROMと呼ぶ人にイラついたが、結局何も言わなかった。
0273デフォルトの名無しさんNGNG
ノイズ付加(画像拡散じゃなくて、粒子をばら撒く奴)
に挑戦したいのですが、
クグッても資料がなかなか見つかりません。
何かありませんでしょうか。
0274デフォルトの名無しさんNGNG
>>273
何をやりたいの?
ノイズを加算するだけじゃだめ?
0275デフォルトの名無しさんNGNG
>>274
jtrimで行なっている処理をやりたいのですが、
何からノイズを作っているのかよく分からなくて。
あれって、出鱈目に色を入れているだけなんでしょうか?
0276デフォルトの名無しさんNGNG
135 名前:匿名希望[age] 投稿日:03/11/24 16:41 ID:7CqRY2+/
シャクライ氏のBBSに下記の内容を投稿したのですが
投稿文は削除され、私への返信に書き換わっています。
(投稿から10分で書き換えって早過ぎ)
シャクライ氏がここをチェックしている場合は
私への返信も削除されると思います。
ゴタゴタは嫌いなのでメールを出すつもりはありません。
(メール出したらIrisFilterの開発に勧誘されるのか?)
以後、静観致します。
---- 投稿内容 ----
題名:ゴタゴタの件     投稿日:2003年11月24日<月>13時48分
はじめまして。
某BBSの某特許申請ソフトウェアとゴタゴタについて
話し合いをするのスレから来ました。
私は4年程前に画像をピンボケ化させるツール(非プラグイン)を作成しました。
現在も仲間内のみで使用しており、今回のゴタゴタの行方には関心があります。
しばらくは静観の構えをとるつもりですが、
今回の一部ライセンス無料化はこのゴタゴタに絡むモノなのでしょうか?
#こちらのHPを拝見させて頂きましたが、
#誤記の中でも気になる部分を指摘させて頂きます。
#
# (誤)IrisFiler , IrisFitler
# (正)IrisFilter
0277デフォルトの名無しさんNGNG
>>257
IntelのIPP+OpenCV使って同じことやってるよ。
IPPは4.0βがただで使える。
確か前スレで参考リンクをまとめてくれた人がいたはず。

ちなみに2台のUSBカメラでテストしてみたが、
内1台からはまともに取り込めなかった。
0278デフォルトの名無しさんNGNG
>>277のやつ、Winならこんな感じのコードになる。(うろ覚え)
CCamera camera;
camera.Initialize(320, 240, -1, m_hWnd);
camera.Start();

CImage img = camera.GetFrame();

cvThreshold(img, ...); // 2値化
ippiFilterMax_8u_C1R(...); // 膨張圧縮
ippiFilterMin_8u_C1R(...);
cvFindContours(...); // ラベリングもどき
0279デフォルトの名無しさんNGNG
プリウスの自動・車庫入れに使われている技術って高度なものなのでしょうか?
あと車名忘れたけど高速道路で白線はみだしたら修正してくれるやつとか
0280デフォルトの名無しさんNGNG
>>279
プリウスの車庫入れアシストは画像認識なんかしてるようには見えないぞ?

白線認識はどっかで実用化した?
壁との距離計った方が現実的だと思うが。
0281デフォルトの名無しさんNGNG
白線認識もトヨタだね。
ttp://www.toyota.co.jp/toyota-navi/plus/lms.html

0282デフォルトの名無しさんNGNG
ちとアホな質問かもしれませんが・・・。

Bitmapを表示するビューアを作っています。
拡大表示したい場合に、バイキュービックやバイリニアを使って表示したいのですが、
この場合、拡大するサイズのBitmapを補完しつつ新たに作成して、それを表示する以外に
なにか方法はあるでしょうか?

というのも、手持ちのビューア(ACDSeeですが・・・)では、同様の補完方法を使って
拡大表示をしても、使用メモリ量がまったく変わらないのです。
上記の方法を使用すれば、大きな画像をさらに拡大した場合、ものすごいメモリを
使う羽目になってしまうはずなんで・・・。
あとは、例えばウィンドウサイズにあわせて画像を拡大・縮小するようにしたい場合などでも
同様に、メモリサイズに変動がないのが不思議なんです。

あとは速度の問題なんかもありますが・・・。
どうしても、2000/XPでのHalfToneによる表示の速度に比べると重くなってしまうので。

教えてください。よろしくお願いしますー
0283デフォルトの名無しさんNGNG
>>282
SetStretchBltMode
0284デフォルトの名無しさんNGNG
>283
それは、HalfToneで描写する以外にもなにかあるんでしょうか・・・?
とりあえずMSDNで見た限りでは何もなさそうなんですが・・・
0285デフォルトの名無しさんNGNG
HALFTONE=バイリニア
0286デフォルトの名無しさんNGNG
>285
んなこたーない
拡大してみれ
0287デフォルトの名無しさんNGNG
いや、ビデオカード依存だと思ったが、たしかにStretchBltで拡大すると
バイリニアになったぞ。
0288デフォルトの名無しさんNGNG
HALFTONE は 95/98/Me だと使えないんじゃなかったかと
0289デフォルトの名無しさんNGNG
そいえば、IPLって何処行ったの?
0290デフォルトの名無しさんNGNG
>>288
SDKのヘルプには使えないと書いてあるが、95でも98でも普通に使えたよ。
IE等のバージョンによって使えるのか、それともビデオカードのドライバに
よって使えるのか知らんが。
0291デフォルトの名無しさんNGNG
白線認識は日産ホンダも実用化、搭載してたと思う。
シーマ、インスパイアあたりかな。
0292デフォルトの名無しさんNGNG
画像のエンハンスメント処理って具体的にどんなことをすればいいんですか?
0293デフォルトの名無しさんNGNG
画像処理の線形フィルタって何がありますか?
どういうフィルタが線形で,
どれが非線形かわかりません.
どなたか教えてください.
0294デフォルトの名無しさんNGNG
>>293
f(aX+bY)=af(X)+bf(Y)が成り立てば、fは線形。

卒業の時期だからかもしれないけど、盛況だねぇ。
恥ずかしがらずに詳しく書かないと回答できないよ。
大丈夫、教授は見てないよ、たぶん。
0295デフォルトの名無しさんNGNG
>>292
画像をエンハンスすればいいんじゃない?
0296256NGNG
誰からもレスが無いのですが、多角形を塗りつぶす処理としては
ソリッド・スキャン・コンバージョンしか無いという事なのでしょうか?
0297デフォルトの名無しさんNGNG
自前で高速な処理を書きたいならそうだろうね。
3角形を高速に塗り潰してくれるハードがあるなら3角形に分解するし
0298デフォルトの名無しさんNGNG
今、BMP画像を読み込んでRGBからYCbCrに変換し、Y成分だけにある処理を
行ってまたYCbCrからRGBに変換してBMPを生成する、というプログラムを
作成しているのですが、
輝度成分にだけに施す処理の部分を省いても、(RGB→YCBCR→RGBだけの、単純な変換・逆変換のみ)
生成される画像が暗く青っぽくなるのです。

変換・逆変換に用いている式はお決まりのあの式で、何度も見直したので間違いはないのですが。
オーバーフローしてる?っぽいのですが、今のところ検討がつきません。

BMPから読み込んだRGB情報→double型の配列に、
RGB情報をYCBCRに変換したもの→double型配列に、
YCBCRからRGBに変換したもの(BMP再生成に用いる)→unsigned char型に、
それぞれ入れてるのですがこれが原因??

ある簡単な画像生成プログラムのソースにあれやこれやと付け加えていっているので
もともとあった配列の宣言などはそのままなのです。

ただ、上記の宣言などでRGBのまま扱っているぶんには問題はありませんでした。
0299デフォルトの名無しさんNGNG
YCbCr→RGB の処理で double から unsigned char に落としているときに
値が 256 を超えるかどうかチェックしてみては?
書き込みを読んだ限りではそこが一番危なそうな気がします.

あと,念のためその「お決まりのあの式」も晒してみた方がよいかと・・・
0300デフォルトの名無しさんNGNG
>>299さん

ありがとうございます。チェックしてみます。

「あの式」ですが、以下のものです。

Y = 0.29900 * R + 0.58700 * G + 0.11400 * B
Cb = -0.16874 * R - 0.33126 * G + 0.50000 * B + 128
Cr = 0.50000 * R - 0.41869 * G - 0.08131 * B + 128

R = Y + 1.40200 * (Cr - 128)
G = Y - 0.34414 * (Cb - 128) - 0.71414 * (Cr - 128)
B = Y + 1.77200 * (Cb - 128)


ある文献にあったものをそのまま使っています。

もし、値が256を超えているようなことになっていたら、
どのような対処をすればよいでしょうか?
0301デフォルトの名無しさんNGNG
超えた値が 256 や 257 くらいだったら,誤差の範囲っぽいので
強制的に255にすれば済みそうですが,
もしももっと大きな値になってたらどこかで普通に
計算間違いをしている可能性があると思います.

0302デフォルトの名無しさんNGNG
明日、256overのものがどれほどあるか調べてみます。ありがとうございました!

計算間違い・・・余計な部分はすべてコメントアウトしてるので
>>300の式に間違いがなければどこで間違いがおこっているのか、
本当に検討つかないです・・・(´・ω・`)
0303デフォルトの名無しさんNGNG
BGRという並びをRGBとしてやってしまってるとか
0304デフォルトの名無しさんNGNG
>>303さん

BMPファイル取得の際、たしかに、
rgb[3][j][i]という配列に、
RGBの順で取得したつもりになってました。([0]がR、[1]はG、[2]がBで)

が、実際はBGRの並びなのですか?!
もしこれが原因なら激しくカッコ悪い・・・

あわせてこれも試してみます!
0305デフォルトの名無しさんNGNG
0より小さい場合も忘れるなよ
0306デフォルトの名無しさんNGNG
BMPファイルは仕様の通りに処理しないとハマルよ
ダミーが入ってたりするし
0307デフォルトの名無しさんNGNG
4bytes境界ルールとかね(w
0308初心者NGNG
>>278,277ありがとうございます!。
一応video for windows で取り込んでバッファまではしたのですが
フレームを制御する方法がよくわからず秒間2,3フレーム程度でしか
表示できずに困ってます。10〜15フレームは欲しいのですけど。
USBカメラのスペック的には15フレーム/秒となっているんですが、う〜ん。
IPP+OpenCVってライブラリなんですか?ちなみに秒間どの程度の処理できてます?

0309初心者NGNG
>>278,277ありがとうございます!。
一応video for windows で取り込んでバッファまではしたのですが
フレームを制御する方法がよくわからず秒間2,3フレーム程度でしか
表示できずに困ってます。10〜15フレームは欲しいのですけど。
USBカメラのスペック的には15フレーム/秒となっているんですが、う〜ん。
IPP+OpenCVってライブラリなんですか?ちなみに秒間どの程度の処理できてます?

0310初心者NGNG
あと、肌色領域を抽出した際領域がバラバラになってしまうので、顔
をひとつのかたまりとして認識させるため2値化した後膨張収縮処理をしたのですが
照明条件によっては領域が分断されてしまうんですよね。
背景等のノイズは除去できたのですが、うまく領域をひとつにする方法は
ないでしょうか?2次元ガウシアンフィルタによる畳み込みがどうのとか
って話を聞いたことあるのですがよくわからないくて・・。
むやみに膨張するのも怖いし
0311デフォルトの名無しさんNGNG
BMPの処理は、BMPから一度32ビットDIBを作ってやると楽だしわかりやすいよ(RGBデータが1ピクセル1DWORDの単純な配列になる)。
0312デフォルトの名無しさんNGNG
つか、web上に腐るほどサンプルあるじゃん
0313デフォルトの名無しさんNGNG
>>309
つーかOpenCVについてGoogleさんに聞いたらまさにそれっているページが出たんだが。
0314298NGNG
皆様、ありがとうございました!無事画像生成できました!
というか、これからさらにいろんな処理をせねばならないのに・・・
先が思いやられます。


以前これの関係でモノクロBMPを弄くる機会があったのですが、
BMPのダミーにはしてやられました。
仕様を確認するのって大事ですね。
0315初心者NGNG
>>319
よろしければURLを教えて頂けませんか?
ちょっと見つからないのですが・・。
0316デフォルトの名無しさんNGNG
>>315 てめぇ誰に向かって口きいてんだ(わらぃ

ここなんか,まさにそうじゃないスか?
http://limu.is.kyushu-u.ac.jp/~yosimoto/work/opencv-howto/index.html
http://limu.is.kyushu-u.ac.jp/~yosimoto/work/opencv-howto/intro-opencv.html
0317デフォルトの名無しさんNGNG
ビットマップ->JPEG変換で、

デバイスコンテキストなんかに書き込むと、
メモリを積んでもリソース不足エラーが発生したりします。

デバイスコンテキストを経由しないライブラリなんかあったりしませんか?
0318デフォルトの名無しさんNGNG
>>317
ふつうにあるだろ?
libjpegとか
0319デフォルトの名無しさんNGNG
>>317
質問が曖昧
0320デフォルトの名無しさんNGNG
> 310
なんで、顔認識をやるのに、肌色を抽出するかわからん。
白黒画像にたいして、周波数空間上で、統計的に認識処理
させる方が、精度が高いと思うけど(処理負荷は大きい)。
0321初心者NGNG
>>320 助言ありがとうございます!
周波数空間上で顔領域というのがどういう特性を持ち、どういった統計処理
により抽出できるのかちょっと検討つかないのですが一般的なのですか?
テンプレートマッチングは計算コストとライブラリの作成等汎用性ひくいので
見送ったのですが、それは盲点でした。具体的にはどういう処理なのでしょう?
処理負荷は小さい方がいいですね。一応汎用PCとUSBカメラのみでリアルタイム
処理を試みているので。
0322デフォルトの名無しさんNGNG
>>289
IPL→IPP

>>308
IPPはこちらから
http://www.intel.com/software/products/ipp/beta/
右上のEnroll Nowからユーザ登録しなきゃいかん
0323デフォルトの名無しさんNGNG
ビットマップを32bitと24bitに
相互変換するコストってどれくらいあるのでしょうか?
実は32bit専用と24bit専用の画像フィルタがあって、
ソースを書き直すべきか迷っているんですが。
0324デフォルトの名無しさんNGNG
>>323
24-32ビットDIBの変換処理コードを書くコストという意味なら、ただ
4バイト境界を計算して3バイトずつコピーしていくループを書く
だけ。Cで書けば数行かな。

処理速度なら、迷う前に数分もあれば実際に書いて確認できるよ。
0325デフォルトの名無しさんNGNG
カメラで画像を撮影したとき
三次元xyz座標を
ピンホールカメラモデルで二次元uv座標に変換するらしいのですが,
どうやって対応付けしているかわかりません.
わかりやすいWebか本ありませんか.
0326デフォルトの名無しさんNGNG
>>324
ども。自分で試しましたが意外と食いますね。
こりゃ、全部32bitでソース書き換えたほうがよさそうだ。
0327デフォルトの名無しさんNGNG
何を食ったんだろ?
0328デフォルトの名無しさんNGNG
24ビットDIBが食いそうなも
0329デフォルトの名無しさんNGNG
JMF(java media framework)で画像処理やってる人います?
0330デフォルトの名無しさんNGNG
Intel Jpeg LibraryをVCで使いたいのですが、intelのサイトから消えてしまって
いて困っています。
どこかDLできるサイトは無いでしょうか?
サンプルもあるとありがたいのですが・・・。
0331330NGNG
自己解決しますた
スマソ
0332デフォルトの名無しさんNGNG
>>331
せっかくなので、どうやって自己解決したか詳細キボソ
0333デフォルトの名無しさんNGNG
画像を任意に回転させるAPIってないの?
Direct3D使わないとダメなのかなぁ・・・

誰かソース公開してないかなー?
0334デフォルトの名無しさんNGNG
画像ってなに> ビット列?HBITMAP?
回転ってなに>回転後のイメージを取得? 回転させて描画?
0335デフォルトの名無しさんNGNG
ビット列、回転後のイメージを取得です

例えば2Dのサイズ(100, 100)の画像を30度に傾けた時どうなるのかとか・・・・
0336デフォルトの名無しさんNGNG
□□□□□□□
□■■■■■□
□■■■■■□
□■■■■■□
□■■■■■□
□■■■■■□
□□□□□□□
↓回転後(こんな感じに)
□□□■■□□□□
□□■■■■□□□
□■■■■■■□□
■■■■■■■■□
□■■■■■■■□
□□■■■■■□□
□□□■■■□□□
□□□□■□□□□
0337デフォルトの名無しさんNGNG
好きなところ読め
http://www.google.co.jp/search?q=%E7%94%BB%E5%83%8F+%E5%9B%9E%E8%BB%A2&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0338デフォルトの名無しさんNGNG
>>335
自力でやる例ならこれとか。

http://www.sm.rim.or.jp/~shishido/kaiten.html
0339デフォルトの名無しさんNGNG
>>335
ならアフィン変換でぐぐれ
0340335-336NGNG
>>337-339
おお、ありがとうです!
がんばるますです!
0341335-336NGNG
337さんが示してる先の1番目のCのページ良さそうですね。
あと338さんのサイトのも。

・・・・・sin,cos???うーん、これは高度な知識だ・・・・
アフィン変換・・・ぎょ、行列!(ひー


負けずにがんばります!
0342デフォルトの名無しさんNGNG
sin,cosくらい小学生でもわかるだろ・・・
0343デフォルトの名無しさんNGNG
>>341

三角関数(というか三角比)は、自分で図を描きながらイメージをつかめばそう難しくないよ。
0344デフォルトの名無しさんNGNG
内挿(補間)もちゃんとやれよ
共一次補間とか、3次畳み込み補間とか
0345デフォルトの名無しさんNGNG
どうでもいい昔話だが、
フォトショップ2.5だったか、「畳み込み」が「叩き込み」と誤訳されていた。
0346デフォルトの名無しさんNGNG
>>345
( ・∀・)つ〃∩ ヘェーヘェーヘェー
0347名称未設定NGNG
最近iBookG4を購入したので、LINUX上で趣味で作っていた画像処理プログラムをMACのOSX上に移行させて動かしてみたいなと考えています。
LINUXで作った画像処理プログラムをMAC上でメイクすると
symbol _inflateInit_ used from dynamic library /usr/lib/libz.1.1.3.dylib(inflate.o) not from earlier dynamic library /usr/lib/ libz.1.dylib(inflate.o)
といったエラーがたくさん出てしまいます。
また、
ld: Undefined symbols:
_DGifCloseFile
_DGifGetExtension
_DGifGetExtensionNext
_DGifGetImageDesc
_DGifGetLine
_DGifGetRecordType
_DGifOpenFileHandle
_PrintGifError
とgifに関するエラーも出てしまいます。
makefileの中で
CFLAGS=-g -O2 -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lXmu -lXi -ljpeg -lpng -ltiff -lz -lm -lImlib
とリンクしてあるんですが、ここがおかしいんだろうなってことまではわかったんですが、それ以上すすめず行き詰まっ てしまいました。
-L/usr/X11R6/libの後ろに続くオプションの部分がおかしいんでしょうが、
知り合いにもらったプログラムを画像処理に全然詳しくないまま組んでいるんで、オプションが何を示すのかも知らず、どうすればいいのやら・・・
画像処理プログラムにくわしい方、ご助言お願いします。
0348347NGNG
ちなみに"X211による画像処理 基礎プログラミング"という本に書かれている通りに

単にWindowを表示するだけのプログラムを作り、

cc window.c -o window -L/usr/X11R6/lib -lXm -lXt -lX11

と打ってみましたがコンパイル出来ず、

ld: can't locate file for: -lXm

とエラーが出てしまったので、

cc window.c -o window -L/usr/X11R6/lib -lXt -lX11

としてみたところコンパイル出来ました。

次にterminal上で実行してみたところBus errorとなってしまいました。

そこで、ユーティリティーフォルダにあるX11上で実行させてみたところ

今度はうまく動きました。

その場その場で試してみてるので、なぜ動いたかとか全くわからず・・・

やっぱり難しいですねぇ。。
0349デフォルトの名無しさんNGNG
MACは画像処理が苦手だからな
0350デフォルトの名無しさんNGNG
>>347

いっそJava2で書き直した方が楽かもな。

0351デフォルトの名無しさんNGNG
pngファイルの色変更ってプログラムで、できますか?
携帯アプリのため、容量制限の関係で、ファイルを沢山もてません。
具体的には、1パターンの人間の画像をjarに入れておいて
服の色、頭の色違いで何パターンか元ネタから、プログラム内で生成したいのですが・・・

やり方や、サンプルなどご存知の方がいらっしゃいましたら教えてください。
0352デフォルトの名無しさんNGNG
>>351
画像処理を携帯でやるのは携帯の目盛りの関係でちょっと厳しいものあるかもしれません。
サーバサイドで計算させるなどの方法を取る必要があるかもしれませんが、
あながたプログラミングの鬼と自負するほどならば可能です。
サンプルですがここで聞くよりgoogleに頼った方がいいと思います。
0353デフォルトの名無しさんNGNG
>>352
ありがとうございます。
先ほどからgoogleで色々探しているのですが、みつからないんですよ。
0354デフォルトの名無しさんNGNG
pngてパレット持てなかったっけ。
パレット変更じゃ駄目なの?
0355デフォルトの名無しさんNGNG
>>354
実現できれば何でも、かまわないんですが
なにせ、そのあたりの知識が乏しいもので。

ご教示いただけると、ありがたいです。
0356デフォルトの名無しさんNGNG
調べてみたらパレット変更できない機種が多いのね。。。期待させてスマソ。
0357デフォルトの名無しさんNGNG
>>347
微妙にスレ違いだけどレスしてみます。
Gif 関連のエラーが沢山でるのは、
Unisys の特許の関係で最近の各種ライブラリではGif関連の関数が削除されてるから。

348 の方は、unix で window を表示したりするのには X11 の APIを用いるんだけど、
あらかじめ X サーバー(ユーティリティの X11 がそれ?) を実行していないとAPIでエラーになる。
簡単なサンプルプログラムだとエラー処理が甘くて bus error になるんだと思います。
0358347NGNG
スレ違いでしたか。。。なにぶんこういうとこに書き込むこと自体慣れないもので。。。申し訳ない。
なるほど、Gif関数がないって言われてるなとは思ってたんですが、
特許関係で削除されてたのですね。
とりあえず、include関連が怪しいなと思い、
/sw/include/のImlib.hやImlib_private.h, gif_lib.hなどを調べてみると、
Imlib_private.hの中でgif_lib.hがincludeされており、
そのgif_lib.hの中で>>347で書いたようなGif関連の関数が宣言されているようです。
しかし、そこまではわかったものの、その関数の実装がどこで行われているのかはわからず、
また、わかったとしてもそれからどうすればいいのかと路頭に迷ってしまった状態です・・・。
とりあえず僕の作るプログラムではjpegを扱い、
そのgif関連の関数は必要ないので、
その参照を削除出来るのなら、そうしたいですし、
別にImlib_load_image関数にこだわりはないので、
jpegを呼び出して画像処理をいままで通り行える関数があれば全然それでOKなんですが・・・。
ちなみにImlib.hはfinkというUNIXのOpen Source softwareをMac OSXに移植するソフトを用いてインストールしたもので、
finkを用いてインストールしたものは/sw/に置かれるようです。
0359デフォルトの名無しさんNGNG
>>356
実現は不可能ということですか?
0360デフォルトの名無しさんNGNG
>>359
色替えした画像を生成したいだけなら
png画像のパレットを変更すりゃいい。

オープンなフォーマットだから資料はたくさんあるが。
ちょっとはググったのか?
0361デフォルトの名無しさんNGNG
>>360
ググったのですが、いまひとつわかるものがありませんでした。
0362デフォルトの名無しさんNGNG
>>361
じゃあ、あきらめろ。お前には無理だ。
俺ですら、だいぶ昔にぐぐってPNGの仕様書持ってるぞ。
0363デフォルトの名無しさんNGNG
ん?PNGの仕様よりも
>調べてみたらパレット変更できない機種が多いのね
これが問題なんじゃないの?

いや、俺はまったく知らないんだけど。
0364347NGNG
自己解決しました。
make時に-lungifと指定することでコンパイル出来ました。
0365デフォルトの名無しさんNGNG
PNGは、CRCがあるのでGIFのようにパレットを動的に生成できないというのを
どこかで見ましたが。
0366デフォルトの名無しさんNGNG
 RGB(sRGB or Adobe RGB) → L*a*b* の変換式について詳しいサイト
or 参考書ご存知の方います? 原典がはっきりしないサイトは幾つか
あるのですが、厳密性が欲しいので今ひとつ信用できません。
 物理的な測定器で計測可能な「色」に関する情報は文献に載っている
のですが、デジタルな話になると係数等諸説入り乱れているようでちょ
っと困っています。詳しい方教えてください。
0367366NGNG
このスレで画像処理関連の良書を晒してみませんか?

 教えてクンではあんまりなので、自分から晒すと
・C言語で学ぶ実践画像処理―Windows、Macintosh、X‐Window対応
 ISBN: 4274946193
・ディジタルカラー画像の解析・評価 三宅 洋一
  ISBN: 413061116X
・色再現工学の基礎 大田登
 ISBN:4339076449
こんな感じです。
0368デフォルトの名無しさんNGNG
>>367
ちょっと高いけど…

・コンピュータグラフィックス 理論と実践
James D. Foley(著), Steven K. Feiner(著), Andries van Dam(著),
John F. Hughes(著), 佐藤 義雄(翻訳)
ISBN4-274-06405-0 オーム社

これで、かなり勉強になった。
0369デフォルトの名無しさんNGNG
>>366
CRCくらい計算すりゃいいだろ。
動的に生成できないなんて言う奴は静的(ってなんだそりゃ)にも生成できない。
0370366NGNG
>366
事故レスですが
http://www.w3.org/Graphics/Color/sRGB.html
のColorimetric definitions and digital encodingsに sRGB については
資料がありますた。
AdobeRGB 誰かわかりませんか?
0371デフォルトの名無しさんNGNG
A4一枚って、bmpで何ピクセル*何ピクセルですか?
A4の紙を想定したbmpの、好きなピクセルを書き換えられるペイントユーティリティーを作りたいのですが。
ちなみに、楽譜の編集データ(独自フォーマット)を最終的にbmpに仕上げるのが目的です。
0372デフォルトの名無しさんNGNG
>>367
ディジタル画像処理の基礎と応用―基本概念から顔画像認識まで
0373デフォルトの名無しさんNGNG
>>371
解像度によって違う。
独自フォーマットなら自分で決めたらいいぢゃん。
0374デフォルトの名無しさんNGNG
フォトショップとかで使われてる「レベル補正」は
どういう関数なのか、教えてください。
0375366NGNG
> 374
 実装的には、あるレベル範囲を切り出すための適当なLUT(lookup Table) を
作成し、それに変換元のデータを入力しテーブルの出力を補正後のデータとし
て書き出すって感じでしょうか。プログラミング言語的な関数という意味では
この仕組みを実現するような関数と考えればよろしいかと。

 LUTの中身が普通に数学でいう関数になりますが、式的には
8 bit 決めうちでは
out' = (input - [min]) / ( [max] - [min] )
out'' = pow( out', [gamma]) * 255.0 ※ pow(x,y) は、 x の y 乗の意味
out = out' を 0 〜255 の整数に変換
という式になると思います。(酔っているので、自信なし。)
 ほとしょっぷのダイアログでは、[min], [gamma], [max] の順に
パラメータ用のテキストボックスが並んでいます。
0376デフォルトの名無しさんNGNG
getpixel()ってpng読めますか?
0377デフォルトの名無しさんNGNG
>>369
どうやって?
0378デフォルトの名無しさんNGNG
DirectShowでオプティカルフロー使って物体の追跡の画像処理してるものです。
大きさが320*240でそこそこ新しいマシンでやってるんですけど、秒間
数フレームしか出ません。メモリーのコピーしまくりとかで、へたくそなプロ
グラム書いてるせいもあるんですけど、性能として大体こんなもんなんでしょうか?
10fpsぐらい出したいんだけど・・・
0379デフォルトの名無しさんNGNG
snakesについて解説してあるサイトってないの?
0380デフォルトの名無しさんNGNG
> 378

どういう計算かしらんが、今のPCスペックで、浮動小数点演算ベー
スで秒数フレームぐらいかと思う。8年前のWSでは、10秒に
1コマぐらいだったような。
0381デフォルトの名無しさんNGNG
>>378
その手の処理は FSB 800MHz (400MHz x 2) の Pen4 でやると結構いい感じですよ。
漏れフレーム全体をコピーしまくってあれこれしまくっても 60fps 出てるもん。

ってのはともかくとして、最終的に 320x240 の映像を処理するにしても、
途中の段階では160x120 とかに間引いて計算するのも良いと思う。
動いてないとこなんてそれで十分わかるし。
0382デフォルトの名無しさんNGNG
初歩的な質問かもしれませんが、
ヒストグラム平滑化の方法について教えてください。
お願いします。
0383366NGNG
ネタですが、お仕事の余興でEXCELのVBAで画像処理をやらせるというもの
作成してみました。
 マクロぉ??、VBA??って思う方々も、多数おられると思いますが、
意外にそれなりに実用的な速度で動きます。
#無論、肝心なところはVC++で書いていますが(謎)

>382
・C言語で学ぶ実践画像処理―Windows、Macintosh、X‐Window対応
 ISBN: 4274946193
にのってたような気がしますが定かではないです。
0384デフォルトの名無しさんNGNG
暗いほうからi番目の画素値を持つ画素の全画素に閉める割合を Pi として、

    n
Hi = Σ P(i)
    i=1

てな感じで新しい値を計算すればよいと思うけど。
(Hi は 0 〜 1.0 となる)
0385382NGNG
ありがとうございます。
助かりました。
0386デフォルトの名無しさんNGNG
モザイクを消すにはどおすればいいですか
0387デフォルトの名無しさんNGNG
-==・==- -==・==-
0388デフォルトの名無しさんNGNG
ttp://ww2.tiki.ne.jp/~masatsu/java/html/sharpimage.htm
のページを参考にして、中心を5倍して、周囲4マスのピクセルをひく、ラプラシアンフィルタを
かけたのですが、画像が青っぽくなるだけで先鋭化されません。
原因がわかるかたいらっしゃいませんか?
0389デフォルトの名無しさんNGNG
>>386
想像で補え

>>388
おまえ、ラプラシアンフィルタの原理分かってないだろ?
R,G,B別に処理するんだよ。
0390デフォルトの名無しさんNGNG
tiffの仕様書読んだけどほとんど理解できなかった。
bmpとかpgmとかは簡単なのにな....
0391デフォルトの名無しさんNGNG
pgmって何?
0392デフォルトの名無しさんNGNG
>>391
画像フォーマット...って流れから言って分らないか?
0393デフォルトの名無しさんNGNG
もっと哲学的な意味で「何か」と訊いているんだよ。
0394デフォルトの名無しさんNGNG
世界を2極論で語るやつと3要素の組合せによるベクトルだと語るやつの間にあって、
世界はスカラーだっていうやつ
っていえばいい?
0395デフォルトの名無しさんNGNG
超先生って誰?
0396デフォルトの名無しさんNGNG
お前それだけは言っちゃならなかったんだ・・・
0397デフォルトの名無しさんNGNG
>>294
そんなあたなにコンボリューション
0398デフォルトの名無しさんNGNG
>>389
アドバイスありがと。
リンク先と同じやりかたなんだけど、rgb[k]の部分でRGBは別々に処理してます。

0399389NGNG
>>398
それなのに青くなる?
オーバーフローとかの単純ミスと思われ。

とりあえず、変換前後の画像をうpしる
0400デフォルトの名無しさんNGNG
>390
↓これと、アドビのTIFF仕様書と現物を付き合わせながらやればOK。
http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif.html
 とりあえず、ヘッダーの解析プログラムをとか書きながら調べてい
けば理解はそれほど難しくは無い。がんがれ。
0401デフォルトの名無しさんNGNG
領域内にさまざまな形のテクスチャをなるべく隙間なく敷き詰めたいのですがよい方法ございませんでしょうか?
0402デフォルトの名無しさんNGNG
>>386
ピクセルがモザイクよりも小さくなるように画像を縮小する
0403デフォルトの名無しさんNGNG
>>402
そのあと三次補間で拡大すれば
ほらビックリ
モザイクは無くなった
0404デフォルトの名無しさんNGNG
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
0405デフォルトの名無しさんNGNG
>>402,403

そんなことしないでも、写真画像にX線・赤外線・統計暗号復号による透視解析をかけるWinedows .COMの隠しAPIを使えば、モザイクだろうが着衣だろうが一発で消せるよ。
0406某画像処理系プログラマーNGNG
画像処理のコードがかけるプログラマーって、普通のプログ
ラマーと比べて、世間的には、どう評価されるのでしょうか?

ただ、業務内容といっても、

・応用的なアルゴリズムの研究、設計、試作。
・研究屋の作ったソフトのパフォーマンス、メモリチューニ
 ング。
・画像関係ミドルウェアを、DSP、アセンブラを使ってチューニング等、
・論文のアルゴリズムをゼロから実装。。

とまあ、いろいろありますが。。。
0407デフォルトの名無しさんNGNG
>>406
「普通のプログラマー」にもいろいろあるからな
0408デフォルトの名無しさんNGNG
どうと言われても・・・
その知識が会社にとって必要かどうかってだけでしょ?
パイロットと船乗りを比べてるようなもんだ。
0409某画像処理系似非プログラマーNGNG
>>406
 猫でも分かる程度のプログラミング知識でメシを食っているも
のですが....。
 画像処理自体、プログラミングという手段なしになんともなら
ないので、できる人がいない職場で需要があれば無茶苦茶重宝さ
れます。居る職場では、もまれたことがないので分かりません。
考えるのも恐ろしいですが(謎)。

 ちなみに、本業では画像の定量評価手法の開発、官能評価支援
なんぞでメシ食っております。が、こんなのポインタが分かって
猫でも分かるを見れば誰でも分かるジャンとも思えるので、微妙
に怯えることもしばしば。いったいどうなんでしょう、自分も気
になります。
0410たなかやんNGNG
いくらくらいの給料もらってんの?
0411たなかやんNGNG
いくらくらいの給料もらってんの?
0412某画像処理系プログラマーNGNG
> 409
うちの職場も、天然記念物に近い。プログラムはそんなに難しくはない。
ただ、英語と数式が混じった資料を読んで、機能に応じた計算式の簡略化、
実装、チューニングできるのは、強みだと思うけど。

あと、画像処理以外にも、並行処理の設計、サブシステム単位の設計をしている。

> 411
手取り20〜30万(マンション代別)、数学という技能を売りにしている割に
は、安いかな? まだ、初めて2ねんなので、この春のチャージUPにきたい。
まあ、この時代、贅沢しなきゃこれぐらいでもじゅうぶんだが。。。

411のハンドル名だけど、風の噂で大学をやめて、VJ/FLASH/CGプログ
ラマーになった奴と同一名だが。。。
0413デフォルトの名無しさんNGNG
2年目で手取り2、30万ですか。
・・・はぁ、転職するかなぁ・・・。
0414デフォルトの名無しさんNGNG
>官能評価支援
違う物を想像しちゃった。
0415デフォルトの名無しさんNGNG
需要供給のバランス取れたら初年から50〜60万くらいいける
0416デフォルトの名無しさんNGNG
>>414
エロ画像の自動分類とかに使えそうだな
0417デフォルトの名無しさんNGNG
そして苦しそうな顔の力士が大量に混在するフォルダが出来上がると……
0418デフォルトの名無しさんNGNG
煽りと思われるかもしれないけど、>>409 と >>412 の文章が読みにくいと思うのは私だけ?
画像処理技術者は文章が下手なのか?

そんな私も画像処理技術者。
0419デフォルトの名無しさんNGNG
読みにくいかどうかの判別に自信が無いなら一々書くな。
0420デフォルトの名無しさんNGNG
>>419
日本語も勉強しような。
0421デフォルトの名無しさんNGNG
半島語は世界一ッ!
0422デフォルトの名無しさんNGNG
私だけ?うざい
0423デフォルトの名無しさんNGNG
> 418
左利き、右脳優先脳なので、文章表現は苦手かも?
0424デフォルトの名無しさんNGNG
優先脳?左利き、右脳は苦手かも文章表現なので、
0425デフォルトの名無しさんNGNG
すみませんが質問させてください。
フォトショップとかにある投げ縄ツールのように、
閉じた曲線で平面上の領域を指定したいのですが、
どんなアルゴリズムを使ったらよいものだかわからないでいます。
たとえば特定の座標が曲線の内側か外側か判定するのは、
いったいどのようにしたらよいのでしょうか?
0426デフォルトの名無しさんNGNG
>>425
領域内の全ピクセルを塗りつぶす要領で。
0427425NGNG
とりあえず何となくアルゴリズムわかってきたんで
実装してみます。
どうもありがとうございます。
0428デフォルトの名無しさんNGNG
指定された領域でリージョン作るんじゃないの?
0429デフォルトの名無しさんNGNG
境界内の塗りつぶしが分かってるなら何の問題もない

ベジエ等の曲線式から境界の座標を全て求めて境界を作り
あとは普通に塗りつぶす
0430デフォルトの名無しさんNGNG
YUVについて質問。

YUVって輝度と色差ってのは知ってるんだけど、
RGB=(Red,Green,Blue)みたいな、それぞれの頭文字が示す英単語がわかりません。
gooの辞書でも駄目ですた。知ってる人いたら教えてください。
0431デフォルトの名無しさんNGNG
BMP画像を使って縦横に複数の画像をマッチングし、高視野の画像を作成したいのですが、
どなたかこれに関して役に立ちそうな情報や、サンプルプログラムがあるホームページ、書籍などを
教えてください。お願いします。使用言語はCです。
0432デフォルトの名無しさんNGNG
>>431
広視野? スティッチング?
0433431NGNG
>>432
すいません、広視野です。画像は、一定の高さからカメラをずらしながら
地面を撮影したものを使います。
0434デフォルトの名無しさんNGNG
>>430
YUVは単語の頭文字とかじゃないよ。英語で表記するなら
Y=Luminance
U=Chroma Blue(Cb)
V=Chroma Red(Cr)
かな
U,V は値を二次元で表記するときによく使われる文字。(x,y,zなどと同じ)
Y は Yellow の略だという噂を聞いたことはあるけど、本当かどうかは知らない。
0435デフォルトの名無しさんNGNG
XYZ色空間のYじゃなかったっけ?
0436430NGNG
>>434
>>435

疑問解決。ありがとうございました。

これから特徴点抽出&仮想空間生成プログラムと
一晩をともにしてきます。デバッグまじで死ねる・・・。
0437デフォルトの名無しさんNGNG
>>434

> Y は Yellow の略だという噂を聞いたことはあるけど、本当かどうかは知らない。
CMYKならそうだが。
0438デフォルトの名無しさんNGNG
Yはluminancyのyなのです
0439デフォルトの名無しさんNGNG
よくある二次の射影変換をする式(8つくらいの係数を求めるやつ)
でなくて、任意の角度で自由に射影変換したいのですが、
そういう式はあるんですか?
0440デフォルトの名無しさんNGNG
YUVとLUVっておなじ?
0441デフォルトの名無しさんNGNG
Y・U・V!Y・U・V!
0442デフォルトの名無しさんNGNG
>>439
二次?二次元?
任意の角度とは?
そのよくあるやつを晒して、どこが不満かいってみ
0443デフォルトの名無しさんNGNG
画像ボードからの画像情報をsimulinkブロックとして組み込みたいのですがどうも・・・
ボードの関数はCなのでs-functionを使ってDLLファイルまでは作成できたのですが、
実際(外部モードで)ブロックを動かそうと思うとうまくできません。RTWの設定?なの
か・・・
こんな感じのデバイスドライバやA/D変換等にくわしい方はいますでしょうか??
よろしくデス!!
0444439NGNG
>>442
b1*x+b2*y+b3
X= -------------
b7*x+b8*y+1
(Yは省略)
というのが二次元の射影変換式ですが、画像を自分の決めた角度で
回転させたい時のb1〜b8の係数の決定の仕方が分からないんです。
x、y、z軸に対して回転させるマトリックスを使うと思うのですが、
そこからどうやってよいのか分かりません。
0445439NGNG
すいません、ずれました…。
0446デフォルトの名無しさんNGNG
>>444
座標変換してから普通に投影すれば?
四元数(クオータニオン、ハミルトニアンとも言う)を調べること。
0447デフォルトの名無しさんNGNG
libjpegの使い方がまったくわかりません。
何か良いサンプルプログラムはないですか?

最終的にやりたいことは、
char配列でRGB値を持っているので、
そのデータを渡して、jpegで書き出す。
ということがしたいです。
0448439NGNG
>>446
普通に投影したほうが早いですかねえ。
クオータニアンですか、調べてみます。
ありがとうございます。
0449デフォルトの名無しさんNGNG
>>448
クオータニアンで検索すると1件しか出てこないぞ。よく見れ。
0450439NGNG
>>449
クオータニオンですね、失礼しました。
0451デフォルトの名無しさんNGNG
>>447
お前はlibjpegのマニュアルを読むのにどれだけの時間を費やした?
0452デフォルトの名無しさんNGNG
>>451
3時間。
0453デフォルトの名無しさんNGNG
http://tanack.hp.infoseek.co.jp/jpegencode.html
0454デフォルトの名無しさんNGNG
> 447
ソースがあるなら、example.cというそのまんまのソースが入っていたと思うけど....
0455デフォルトの名無しさんNGNG
>>439
何をやりたいのかよくわからんが、これじゃだめなのか?
ttp://mailsrv.nara-edu.ac.jp/~asait/open_gl/linear.htm#section22
0456デフォルトの名無しさんNGNG
>>444
二次元なのになんでZ軸がでてくるのか分からない

二次元の座標値をただ回転させたいだけなら
二次元のアフィンだけでよさそうなものを
0457439NGNG
>>455,456
二次元の画像を3軸に対して回転させたとき、
どのように画像上に投影されるか、ということです。
つまり、奥にある物体ほど小さく投影され、手前なほど
大きく投影される、ということです。
説明不足ですいません。

なんとかすることができました。みなさんありがとうございます。
0458デフォルトの名無しさんNGNG
卒業研究の時期ですね。
ここに投稿する前に、先生やお友達と相談して、せめて意味が通じる質問にしてね。
0459デフォルトの名無しさんNGNG
ショボイ卒研やな
0460デフォルトの名無しさんNGNG
>>457
回転と投影は全然別の処理と思えるのだがよ
0461デフォルトの名無しさんNGNG
下のようなライブラリを探してます。

DV形式(AVI)ファイル→MPEG
DV形式(AVI)ファイル→JPEG

例えば、DVのコーデックがカノプのものだったりしたら、
自作以外方法がなかったりしますかねぇ。
0462デフォルトの名無しさんNGNG
>>461
DirectShow使えば?
0463461NGNG
>>462
プログラミングでやらないといけないんでつ。(DirectShowのCOM使えるのかな?)
0464デフォルトの名無しさんNGNG
Elcard あたりのエンコーダ買ってDirectShowでやれば?

>プログラミングでやらないといけないんでつ。(DirectShowのCOM使えるのかな?)
DirectShow ってプログラムで使うためのものなんだけど……
0465デフォルトの名無しさんNGNG
いろいろ探したんだが、見つからないので、こちらに書かせてもらう。
バイキュービックのソースコードが落ちているサイトはしりませんか?
英語でもかまいません。
数学的なことを書いてあるサイトはあっても、実際の実装法を書いているサイトが見当たらなかったので。
0466デフォルトの名無しさんNGNG
>>465
数式見て実装が思い浮かばないようなら諦めた方が……
0467デフォルトの名無しさんNGNG
>>465
「BiLinear Image Scaling Source Code」
あたりでググってください。大量にある
0468デフォルトの名無しさんNGNG
>>466
まぁ〜慣れって部分もある気がするし
0469デフォルトの名無しさんNGNG
> 467
nearestや、bilinearは腐る程ひっかかるが、cubicはほとんどない。
まあ、gimpや、image magikに、実装はされているので、
ソースをのぞいてみる事をおすすめする(最適化されているので、
みずらいが)。

> 466
cubicは16点補完なので、実装がめちゃめちゃめんどくさいと思う。けど。


0470デフォルトの名無しさんNGNG
>>469
最適化を考えないなら、
水平方向に4点補間したものを
垂直方向に4点補間すればいいから
簡単でしょ。
0471デフォルトの名無しさんNGNG
>>465
便乗。
bicubicの数学的根拠が書いてあるサイトを教えてください。
ベタで良ければソース書いてあげるからさ。
0472デフォルトの名無しさんNGNG
んでは便乗で・・・

ここの7/7のとこに乗ってる、Lanczos2/Lanczos3 フィルタのソースを書いてください。
0473デフォルトの名無しさんNGNG
ごめん、URLわすれた・・・

http://www.marumo.ne.jp/db2001_7.htm
0474デフォルトの名無しさんNGNG
ちなみに、バイキュービックの重み計算の公式はここの12/18にあります。

http://www.marumo.ne.jp/db2000_c.htm
0475471NGNG
>>474
違うよ。どうしてそういう係数なのかとか、どういう性質があるのか、ってこと。
3次で補間してるのわかるんだけど、例えば上のページで妙に具体的に書かれている式は、
なにか根拠があるのか、経験的なものなのか、亜流の式でもbicubicって呼ぶのか、
そういうことが知りたいわけ。

lanczosだと(あそこに書いてあることだけ実装するなら、だけど)
各ピクセルごとに
(1) 係数を計算する
(2) たたみ込む
だけだけど、それでいいの?
0476デフォルトの名無しさんNGNG
「イメージプロセッシング<画像処理標準テキストブック>」
財団法人画像情報教育振興協会
でも読んで勉強しとけ
0477デフォルトの名無しさんNGNG
>>475
sinc 補間 (無限タップ) を 3 次式使って近似して
左右 2 点の 4 タップフィルタにしたのが 3 次補間。

ただそれだけ。

sinc 補間に関してはサンプリング定理とか調べれば
判るでしょう。
0478デフォルトの名無しさんNGNG
うるせー馬鹿
さっさとソース出せ
0479472-474NGNG
ごめん、474のは>465向けに書いたつもりだった。

んじゃ、PDFだけどこんなのは?

http://mikilab.doshisha.ac.jp/dia/monthly/monthly01/20011222/personal_kawasaki.pdf

正直、数学はさっぱりなんで、内容が正しいのかもわからんけど。
あとは、昔のCマガにその辺の詳しいことが書いてあったけど、今は手元に無い。

俺としては理論は置いといて実装できればいいので、>473のを
プログラムに使える形の式にしてもらえればありがたいっす。

0480デフォルトの名無しさんNGNG
おまいは数学どころか全てのことがさっぱりだな。
0481デフォルトの名無しさんNGNG
>>479
つーかそこでソースも公開してるじゃん
ttp://www.marumo.ne.jp/auf/
の「lanczhos 3-lobed 拡大縮小」と
「3次補間フィルタ」ね
0482デフォルトの名無しさんNGNG
>>476
入門編とそうじゃないのとがありますが、違いはあるのでしょうか?
通常のやつが入門編の内容を含むものだったら、1冊だけ買いたいなと。
0483デフォルトの名無しさんNGNG
>481
知ってるよ。まあ、解析するのをサボって聞いた俺が悪かったよ。
そう思って今見てみたけど、重み計算はそのまんま当てはめてるだけだね。

あと、バイキュービックは俺には関係ないし。

0484デフォルトの名無しさんNGNG
あのさー、質問する奴は名前欄に何か入れとけよ。
誰が誰だか分からん。
0485475NGNG
>>477
ありがとう。ホントにどうもありがとう。
なるほど、そういうことですか。知りませんでした。

sinc補間とかサンプリング定理とかは一応知っているつもりだけど、
そういう本には逆に一般的に名前が付いているフィルタのことは書いてないので
知りたかったんです。
0486デフォルトの名無しさんNGNG
で、結局ここにソースがかかれることは無いわけだ
できないんならグチャグチャ言うなっつうのな
0487デフォルトの名無しさんNGNG
>>486
お前が書けよ
0488デフォルトの名無しさんNGNG
> 486
守秘義務があるのでソースは出せない。
0489デフォルトの名無しさんNGNG
bmpファイルを配列にして画像処理したいんやけど
参考サイトありませんか.
教えて下さい.
0490デフォルトの名無しさんNGNG
http://www.google.co.jp/
0491デフォルトの名無しさんNGNG
>>489

http://www.sm.rim.or.jp/~shishido/

ここの「DIB・グラフィック処理実験室」。
0492デフォルトの名無しさんNGNG
気圧観測値(990とか1024とか)の入った配列[113x65]を
5倍に引き伸ばしたいのですが、うまい補間方法はありますか?
ざっと探してもとっかかりを掴めないのでヒントきぼんぬ。。

画像と関係ないかもしれないけど
画像処理のノウハウを使えそうなので。アヒャ
0493デフォルトの名無しさんNGNG
関係ないよりも意味わからん。
いったい何を5倍に引き伸ばしたいってんだよ。
0494デフォルトの名無しさんNGNG
配列には北緯・東経1度刻みの気圧データが入っています。
左上の[0,0]が東経0度・北緯90度とすると
[0,10]は東経0度・北緯80度、[100,30]は東経100度・北緯60度 のような按配で。

データの解像度が1度刻みということになりますが、
113x65ピクセルの画像を565x325に綺麗に拡大する要領で
擬似的に解像度を0.2度刻みにageたいのです。ウhラー
0495デフォルトの名無しさんNGNG
画像と同じでいいなら、共一次補間とか、三次畳み込み補間とか
0496名前は開発中のものです。NGNG
リアルズームテクノロジーってどんなコード?
0497デフォルトの名無しさんNGNG
ほげー
バイリニアってやつですか。
文系のヴァカには少々難しい補間技術ですねえ。。。
がんばって勉強しますm(_____)m
0498デフォルトの名無しさんNGNG
バイリニアって中学生1年生レベルだよ。
0499デフォルトの名無しさんNGNG
>>498
確かに一次関数で切片と傾きのことを理解してりゃ
中学一年生でも分かる範囲だな

三次なら中学三年生くらいかな
0500デフォルトの名無しさんNGNG
500Gets!
0501名前は開発中のものです。NGNG
>>496
これ? tp://www.isl.co.jp/PRODUCT/DZP_DXS/05.html
0502デフォルトの名無しさんNGNG
何個か質問させていただきます。

・オプティカルフローについて
 f(n)とf(n+1)にてオプティカルフローを適用する場合、
 ベクトルを描くのはどちらのフレームですか?

・円の描き方
 ある座標を中心に半径10ピクセル以内を最大輝度値にする場合、
 どういうアルゴルリムがありますか?

おねがいします〜
0503デフォルトの名無しさんNGNG
ベクトルを描くってことは、人間に見せるのが目的でしょ?
その目的に応じたわかりやすい方でいいと思うけど、
どっちが多いかというなら、移動結果とベクトルを重ねてる方が多そう。

10ピクセル限定なら(あるいはその前後に限定されるなら)、
20x20程度のビットマップにあらかじめ描いておいて、ORする。
一般的な円ならこちら参照(後者の方が解説が丁寧)。
ttp://www.edu.ics.saitama-u.ac.jp/~i736tt/cg/cg2.html
ttp://www2.starcat.ne.jp/~fussy/algo/algo2-1.htm
そして、座標を求めて塗りつぶす。
0504デフォルトの名無しさんNGNG
>>503の1個目は
ttp://www.edu.ics.saitama-u.ac.jp/~j736tt/cg/cg2.html
のまちがい
0505デフォルトの名無しさんNGNG
メディアンカットの資料どっかない?
うまく見つけることができないんだけど。
0506デフォルトの名無しさんNGNG
> 505

libjpegのjqunat2.cというファイルにソースが乗っている。
0507デフォルトの名無しさんNGNG
MMXつかってBitmapを処理する場合は、32bitに変換しないと無理ですか?
0508デフォルトの名無しさんNGNG
>>507
(大半のピクセルについて)ピクセル単位の処理がいらなかったり、
R,G,Bのコンポーネントに分解したりする必要がない処理なら 24bpp のままでも可。
例えば加算合成とか、単純な差分とか。
0509デフォルトの名無しさんNGNG
すみません、PhotoShopのカラーバランスにある
「輝度を保持する」っていったいどういう処理なんでしょうか?
たとえば
(R,G,B)=(150,150,150)
にカラーバランスで輝度を保持しないで赤方向に30動かすと
(R,G,B)=(166,150,150)
になります。具体的な数字はとりあえずとして、これはわかります。
このパラメータで輝度を保持すると
(R,G,B)=(158,141,141)
になる。なぜ?
元の輝度は0.3*150+0.59*150+0.11*150で150
処理(輝度の保持なし)後が同じ計算で154.8
この数値からどうやって輝度の保持有りの値になるのでしょうか?
0510デフォルトの名無しさんNGNG
>>509
煽りでもなんでもなく、その質問は adobe にするべきだと思う。
0511デフォルトの名無しさんNGNG
>>509
輝度の求め方は何通りもあるよ
0512デフォルトの名無しさんNGNG
>>509
君が正しいと思うRGB値はいくつ?
RGBの値の方が丸められたんじゃないの?
0513デフォルトの名無しさんNGNG
>>509

Adobe がどういう計算をやっているかは知らないけど、

> 0.3*150+0.59*150+0.11*150で150

この式の係数は、NTSCで規定されている「R」「G」「B」を前提に
していると思うんだが、パソコンのRGBは、ソレとは違うのかもね。

ひとくちにRといっても、ブラウン管メーカーの使っている赤色の
蛍光体は異なる物質のブレンドだから、同じ色とは限らないしね。
0514デフォルトの名無しさんNGNG
>>506
thanks.
0515デフォルトの名無しさんNGNG
>>509
色空間は何使ってるんだ?
0516509NGNG
>>512
出てくる数値として考えていたのは
元の輝度と処理後の輝度の差を考えて明るさを4づつ落とした
(R,G,B)=(162,146,146)
だと思っていたんです。
この数値を計算すると輝度150.8になるので。
ちなみに、輝度の保持後値で輝度を計算すると146.1
保持してる?と聞きたくなりました。

>>511
>>513
求め方がそもそも違うかもってことですよね。
うーん、何してるんだろう。

>>515
色空間はadobe RGB(1998)を使ってます

どんな処理を実行してるんだろう?
0517デフォルトの名無しさんNGNG
>>516
シャドウ・中間調・ハイライトってあるぢゃん。
この辺が効いてるんだろ。

100,100,100で中間調でやったら予想通りになるよ。
150,150,150を中間調・ハイライト同時にやるとほぼ予想通り。
0518デフォルトの名無しさんNGNG
>>513
ITU-R BT.601 の係数ですな。
正確には 0.299, 0.587, 0.114。
MPEG とかでも YCbCr への変換に使っている係数。

今ではハイビジョンテレビ用の係数とかもあるようだけど。(PCの特性はむしろこっちのほうに近い)
ITU-R BT.709 0.2125, 0.7154, 0.0721
0519デフォルトの名無しさんNGNG
|
|
       |
      |
       a
a
0520デフォルトの名無しさんNGNG
メモリ上のjpegイメージをDIBに展開する良い方法ってありませんか?
ファイルからならlibjpegで出来たんですが。
0521デフォルトの名無しさんNGNG
>>520
libjpegでできるよ。source mangaer について調べれ
jdatasrc.c が参考になる。
0522デフォルトの名無しさんNGNG

選択されて反転表示させる画像処理方法と
それを元に戻す処理方法について知りたい
のですが、何か良い本ありませんか?

Windowsのリストビューからドラッグイメージを
生成したいのですが、反転されたままの透過
画像になってしまうので。

ついでに、この辺の画像処理テクニック一般を
扱った本があれば読みたいのです。

0523デフォルトの名無しさんNGNG
>>522
マスク用意汁。
ついでにスレちがいっぽい。
0524デフォルトの名無しさんNGNG
>>523
マスクを使うのは分かるんですが、
どういうマスクを使えばいいのか
分からなくて。

反転色と同じ色のマスクだと、白い
文字も消えちゃうんですよ。

他に適当なスレありますか?
0525520NGNG
>>521
ソースを見たところ、なんとかやれそうな雰囲気です。
ありがとうございました。
0526526NGNG
BufferedImageをJPGでファイルに保存するメソッドsavearea(仮名)を作っています。
これにカメラ画像をBufferedImageに変換したものを
引数として与えてやると、きちんと保存されています。

しかし、
一度処理(差分領域を赤線で囲む等)を行った後のBufferedImageを変数bfとしたとき、
bfをフレームで表示はできるのですが、
bfをsaveareaで保存しようとするとファイルは保存されますが真っ白です。
saveareaにbfが投げられたときbfがNullでない事は確かでした。

もし解決方法がわかる方がおられましたら、どうしたら保存できるのか教えてください。
0527デフォルトの名無しさんNGNG
同じ大きさのBufferedImageもういっこ作ってそれに描いてそれを出力してみ。
BufferedImage i2 = new BufferedImage( image.getWidth(), image.getHeight(), image.getType());
i2.getGraphics().drawImage( image, 0, 0, null);
こんな感じで。
0528526NGNG
>527
返答ありがとうございます。
とりあえず同じ方法でi2に新しくコピーしましたが結果は同じでした。
どうやらBufferedImage型変数を宣言する際に
BufferedImage bi=new BufferedImage(320,240,BufferedImage.TYPE_INT_ARGB);
としていたため、真っ白だったようです。TYPE_INT_RGBに変えたら正しく保存できました。
0529デフォルトの名無しさんNGNG
まことに恐れ入りますが、
オフィスのワードのワードアート機能みたいに、
画像ゆがませたりしたいんですけど、
なんか参考になるページ、書籍、単語(キーワード)などあったら教えてください。

ぐぐってもいまいちわからんですた。
0530529NGNG
追記:
3D系のライブラリは使用しないで作成したいっす。
0531デフォルトの名無しさんNGNG
>>529
ビデオゲームの技法で、ラスタースクロールって知っているか?
0532529NGNG
>>531
知りませんでした。ありがとうございます。
ただ気をつけないと激しくジャギーがでそうな予感。

贅沢いって申し訳ないですが
丸める技法とかそういうのも教えていただけるとありがたいっす。
キューブマップとか参考にすれば宜しいのでしょうが、
どういうアルゴリズムにしていいのやら。
明日、明後日休みなんでじっくり考えてみます。
0533デフォルトの名無しさんNGNG
ただのもーふぃんぐでいいような
0534529NGNG
>>533
どもっす。そこらへん調べてみますわ。
0535デフォルトの名無しさんNGNG
DIBなら、ただの2次元配列だから自由自在。
ここにお世話になった。 WIN32SDKだが、特殊なAPIを
使ってるわけじゃないからいろんな環境で役立つと思う。
http://www.sm.rim.or.jp/~shishido/graphics.html
0536デフォルトの名無しさんNGNG
おもいっきし>>491でガイシュツだった。スマソ。
0537535,536NGNG
罪滅ぼしに、役に立ちそうなのを、あと2つ。

RGBの8ビットづつの加算などを一括で。
http://www.emit.jp/prog/prog_b.html

整数型sin,cos,sqrt
http://www.gen-ta.net/underwater/
0538デフォルトの名無しさんNGNG
モーションブラーの原理を教えてホスィ

リアルタイムで画像動かしながら半透明合成でもするの?
0539デフォルトの名無しさんNGNG
リアルタイムもあるし、原画にかける事もある。後者の方が負荷が軽い。
前コマa=50%の上に当コマa=100%でsrccpyであらかじめ作っておく。
0540デフォルトの名無しさんNGNG
strcpyって、このスレに似合わない単語が出てきたな
0541デフォルトの名無しさんNGNG
540でな。
0542通りすがりNGNG
ワラタ
0543デフォルトの名無しさんNGNG
>>540
気を落とさず、精進しなされ。
SRCCOPYもstrcpyも似たようなものだ。

ちなみに、多くの処理系ではmemcpyの方が早いぞ。
0544デフォルトの名無しさんNGNG
個人的には、>>539 の手法で作れる、ただの残像を、「モーションブラー」と称するのはやめて欲しい。
せめて「モーションブラーもどき」とか「モーションブラー風効果」って言って欲しいなぁ。

真のモーションブラーは、たとえば秒30コマなら、1/30秒の間に移動した分の画像の合成だから、
1/30秒内の画像を重ね合わせて作るべき。
まじめにやるなら、たとえば 1/120秒間隔の画像4枚を合成するとか、そういう感じ。
0545529NGNG
>>535
どうもありがとうございます。
>>491 のようなことは基本的にはおさえていたんですが、
>>537 の下の方はちょいとリンクどこにっやったのか忘れてたので思いださせていただいてありがとうございます、
0546デフォルトの名無しさんNGNG
AVIファイル内のある動画ストリームの総フレーム数を求めたいんですが
そういう便利な関数ってありますか?

インデックスチャンクのサイズを読み出して16で割る
というプログラムは書いてみたんですが
みんなこんなことやってるのかなー?と思って・・・。
0547 NGNG
ビットマップに含まれているQRコードを
デコードするライブラリで、フリーなものって無いでしょうか?
ソースが公開されているとなおうれしいのですが…

それ以外にでもソースが公開されているような
二次元バーコードのデコード用ライブラリご存知ありませんか?
0548デフォルトの名無しさんNGNG
http://www.swetake.com/qr/java/qr_java.html
これでございますか、旦那。
0549 NGNG
>>548 あんた、いいひとだ…
0550 NGNG
と思ったら…、エンコーダだった…欝
エンコーダはすでに作ってあるんだよな…

いまだ画像からのQRコード切り出しが頭悪すぎで
実用にならないという俺の程度の低さを笑ってくれ。
0551デフォルトの名無しさんNGNG
画像をFFTした結果(並べ替え前)って


0
正負
正負

0
正正
負負


のどっちですか?
0552デフォルトの名無しさんNGNG
>>551
まずは、意味が分かるように書け
0553551NGNG
説明不足ですいません。

デジタル信号をFFTした時、

 正の周波数成分|負の周波数成分
0-------------------------------->

という結果になります。


画像の場合、

v
|
|
0----->u
|�@�A
|�B�C
|

のような結果になります。
�@&�Cおよび�A&�Bは対象なのですが、
どちらが正の周波数成分でどちらが負の周波数成分かで戸惑っております。
0554デフォルトの名無しさんNGNG
>>553
基本的に画像が正の位置情報しかない場合、すべて正の周波数と考えた方が楽で、
同じ画像が周期的に繰り返されていると考えると分かると思う。
FFT後の画像も繰り返されているといった感じ。

# よけい分かり難くなるかな?
0555デフォルトの名無しさんNGNG
コラージュしたり、目を線で黒く塗った画像を、
他の人が加工したところを削ることができるのですか?
0556デフォルトの名無しさんNGNG
心眼で可能
0557デフォルトの名無しさんNGNG
>>555
マジレスすると
「他の人が加工したところ」を判別する方法が無いと思われ。


0558デフォルトの名無しさんNGNG
真っ黒に塗った部分を、情報欠落部分と判断できるなら、
既存の補間手法で復元できる可能性がある。

ただし、離散エラーならかなり復元できるが、
バーストエラーだったらせいぜい数〜数十画素。
0559デフォルトの名無しさんNGNG
>>555
バターをつけて擦れ。
0560デフォルトの名無しさんNGNG
なつかしー
0561デフォルトの名無しさんNGNG
javaのImage関係のクラスで、
例えば、
右向きに歩いている人間の画像を
左向きに歩いている画像に変換することができるような
メソッドってありますか?
0562デフォルトの名無しさんNGNG
>>561
Graphics2D#drawImage(Image, AffineTransform, ImageObserver)
0563デフォルトの名無しさんNGNG
ピクセルのRGB値から輝度を求めることは次の式を使って
「0.299f * R + 0.587f * G + 0.114f * B」
求めることが出来るのですが、結局は0〜255の8ビット
輝度値になります。
これを16ビットや24ビットの輝度値にしたいのですが、
どのようにしたら良いでしょうか?
ご回答よろしくお願い致します。
0564デフォルトの名無しさんNGNG
入力にゲタかませばいいじゃねーか。
厨房でも考え付くと思うぞ?
0565デフォルトの名無しさんNGNG
>>564
すみません。。リア厨ですが分かりません。。
教えて下さい・・・。。
0566デフォルトの名無しさんNGNG
ヒントだけな。

1 × 10 = 10
?× 10 = 100

これでもわからなかったらアキラメレ。
0567デフォルトの名無しさんNGNG
>>566
有難う御座います。分かりました。
0568デフォルトの名無しさんNGNG
JPEGノイズを調べる実験をしているんですが、
一番基本に忠実で、一括でのBMPとJPEGでの相互変換ができるいいソフトありますか

自前の画像に信号を埋め込むプログラム(パラメータの違う画像を7*11個吐く)
↓
CzViewでJpegに一括変換
↓
jpg2bmpでBMPに変換
↓
自前の信号を検出するプログラム

jpg2bmpとCzViewを比較した場合、後者の方が信号の検出結果がよく、
出力されたファイルをバイナリエディタで比較したところ、だいぶ異なっていました。
CzViewでBMP変換してもよいのですが、このソフトはBMPへの一括変換ができないので、非常に困っています。
0569デフォルトの名無しさんNGNG
自分で書いてはどうだい?

サンプリングファクタや
量子化テーブルを操作できなきゃ、
そのソフトが生成するJPEGのノイズしか調べられないだろ

CzViewというソフトがそこまでできるソフトなら問題ないと思うが
0570568NGNG
JPEGノイズが研究の本質じゃなくて、信号埋め込みのほうなので、
一番、JPEGの標準規格に忠実なソフトを知りたいのですが…。
0571デフォルトの名無しさんNGNG
JPEGの標準規格に忠実な2つのソフトでBMPをJPEGにしたら、
両方とも同じバイナリになると思ってる?

規格の範囲内でパラメータを変えれば、ノイズの出方も全然違う

サンプリングファクタを1:1:1にして、
量子化テーブルを全部1にすれば、
ほとんど損失のない画像ができるし、
サンプリングファクタを4:1:1とかにして、
量子化テーブルを高い数値に設定すれば、
原型を留めないような画像になる。

ほとんど損失のない画像と原型を留めないような画像の両方とも、
JPEGの標準規格に忠実なものだということだ。
0572デフォルトの名無しさんNGNG
脳に蛆がわいてるな
0573デフォルトの名無しさんNGNG
可逆圧縮のJPEGを使えば、デコード後の色の違いはなくなる。
0574デフォルトの名無しさんNGNG
>>570
板違い
0575デフォルトの名無しさんNGNG
JPEG画像を回転させるところまではわかるんですが
その後、無劣化で保存するにはどうしたらいいでしょうか
0576デフォルトの名無しさんNGNG
>>575
(゚Д゚)ハァ?
可逆のフォーマットで保存すれば?

90度単位の回転ならJPEGからJPEGへ劣化無しで行えるが、
JPEG画像の回転がわかるということはそれはもう知っているのだよね。
0577デフォルトの名無しさんNGNG
1:1:1で量子化テーブルも全部1だとしても非可逆じゃないよ
0578デフォルトの名無しさんNGNG
>>577
非可逆だと思うが・・・
DCTで計算誤差が発生するんでないか?
0579デフォルトの名無しさんNGNG
非可逆だよ/可逆じゃないよ
だ
0580デフォルトの名無しさんNGNG
JPEGで保存したいとは指定されていないように思うが。

それはさておき、おまいら可逆JPEGもJPEG-LSも知らんのか・・・。
0581デフォルトの名無しさんNGNG
>>580
ITU-Tの勧告の載ってるのは見たが、
実際にファイルを見たことはないな〜
0582デフォルトの名無しさんNGNG
>>581
今はJPEG2000の可逆モードがいいかも。
0583デフォルトの名無しさんNGNG
PNGはどうよ
0584デフォルトの名無しさんNGNG
YCCを変数として濃度を変更したいのですが、何か式とかはないでしょうか?
(HSV等に変換しないで)
0585デフォルトの名無しさんNGNG
>>582
ソース公開されているJPEG2000のCODEC

[JJ2000(Java)]
http://jj2000.epfl.ch/

[Jasper(C)]
http://www.ece.uvic.ca/~mdadams/jasper/

[J2000(C+C#)]
http://j2000.org/
0586デフォルトの名無しさんNGNG
>>584
濃度ってのは彩度のこと?
だったらCbCrを増やせばいい。
0587デフォルトの名無しさんNGNG
まあCbCrにてきとーなカーブかけたら十分でしょうな。
輝度によってカーブが変化させて、暗部ほど彩度を上げるとかってアプローチもあるでしょう。
0588584NGNG
>>586,587
うまくいきました。ありがとうございます。
0589デフォルトの名無しさんNGNG
http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html
↑ここののプログラムでキャプチャーされた動画像をすべて、BMPまたは、AVIやMPEG
で保存する方法わかりますか?
どなたか、教えてください。
0590デフォルトの名無しさんNGNG
画像と名の付く限り、BMPへの保存はヘッダを換えるだけ。
DIBとBMPで検索しなされ。
AVIへはAVIで始まるライブラリ関数をMSDNで調べなされ。
MPEGへは、AVI経由で人の作ったソフトで変換しなされ。
0591デフォルトの名無しさんNGNG
動画はDirectShowで簡単に扱えるみたいだけどどうなんだろう。
0592デフォルトの名無しさんNGNG
DirectShowはアレだ。死ねる。
0593デフォルトの名無しさんNGNG
簡単っちゃ簡単だし本格的にコンシューマ相手にやるなら他に手は無いけど、
研究等で画像処理だけが目的なら自前でループ回すほうが良くない?
0594デフォルトの名無しさんNGNG
減色のフリーライブラリってありませんか?
どうも見つかりません。。。
0595デフォルトの名無しさんNGNG
>>594
作れ
0596594NGNG
まぁ、一応作ってはあるのだが、あまりにタコなもので。
pag1tetoはシェアだしなぁ。Padieでも読むかなぁ。。。
0597デフォルトの名無しさんNGNG
>>596
うp汁

どれくらいタコか見てやる
0598デフォルトの名無しさんNGNG
>>594
ソースならCマガジン2000年7月号
再帰分割+LBGクラスタリングを組み合わせて、1600×1200の24bit画像が
数秒(PentiumIII 600MHz)で処理できる程度に高速化して使っています。
0599デフォルトの名無しさんNGNG
>>594
ImageMagickでも見てみれば?
0600594NGNG
いろいろサンクス。
>>597 ただのMedianCutだから載せるまでもない。(タコとは言いすぎか
>>589 その号のCマガジンないので、今度バックナンバー見てきます。
>>599 ImageMagickの減色って高性能なのかな。あとで見てみます。

これくらいしか書けないですが、みなさんどうもー
0601デフォルトの名無しさんNGNG
>>600
ディザはやってないの?
0602デフォルトの名無しさんNGNG
ImageMagickの減色は
一時期質が悪くて叩かれてたけど
最近のバージョンは進化してる。
俺はあの動作で満足。
0603デフォルトの名無しさんNGNG
ちなみに、ImageMagickのconvertの場合
デフォルトではFloyd-Steinbergエラー拡散という手法のディザーリング。
良くも悪くもオーソドックスでポピュラー。
実行時オプション "+dither" を付けるとディザーリング無し減色もする。
その動作が気に入ったら
オープンソースなのでソースを読みながら動きを探ってくれ。
減色に関する文書はwebに結構散らばってるから、時間あるなら探してみて。
英文読むのが好きならweb上の資料は多いんだけどね。
0604デフォルトの名無しさんNGNG
画像処理によって、画像内にある物体との距離を
算出することはできるのでしょうか。

入力は動画でもいいです。簡単に算出可能で精度は高いものなのでしょうか・・・
0605デフォルトの名無しさんNGNG
>>604
質問が漠然としすぎだ
0606デフォルトの名無しさんNGNG
距離測定つながりで教えてください。

Windowsでステレオ視をちょこっとやってみたいんですけど、どんなカメラ使ってますか?
USBとか1394とかのカメラでなんかいいのないかなと思ってるんですけど。
0607デフォルトの名無しさんNGNG
diff・absとってblur
値の大きな領域は移動と思われる箇所

こんどは上下左右にずらしながらdiff・absとってblur
移動と思われる箇所の値が最も低下するとき
移動元と移動先が判明
0608デフォルトの名無しさんNGNG
VC++で画像処理が学べるホームページいろいろ教えてください
0609デフォルトの名無しさんNGNG
輪郭抽出などで周囲のピクセルとの差分をとったりする必要がある時に、
差分のとれない画像の周囲1ピクセルってどうやって処理してますか?
0610デフォルトの名無しさんNGNG
>>608
コンパイラに依存した画像処理の話なんてそう出来ないと思うが
0611デフォルトの名無しさんNGNG
>>609
あきらめる
0612609NGNG
>>611
マジですか?
0613611NGNG
>>612
マジですが?
0614デフォルトの名無しさんNGNG
MedianFilterってどういうのが一般的?
一平面の場合はわかるんだけど、多平面になったときにどうしていいかわからん。
自分で考えても、これくらいの案があるんだが。

1.RGBの三平面に独立してかける。
2.YCrCbの〜
3.Y成分によって、ピクセルを選択して、CrCbはそれに従属させる。
4.RGBのそれぞれの成分を二乗して、分散をとって、それでピクセルを選択する。

どうすればいいか教えてください。
0615デフォルトの名無しさんNGNG
>>614
目的による。
というか、全部試せばいいじゃん。
0616デフォルトの名無しさんNGNG
>>609

相手にしない
0617デフォルトの名無しさんNGNG
>>609
用途によるが、もともと隣のピクセルとの差分はピクセル数より1少ないんだから、ビクセル数と同じにしたければ適当にごまかすしかない。
実装上の処理はいくつか考えられる。
ぱっと思いつくのは、適当な値に固定する、端のビクセルを繰り返す、反対の端へ回り込む、1ビクセル内側へ戻る(折り返す)。

0618609NGNG
>>617
レスありがとうございます。
いろいろとソースをあたってみたら、大体そんな感じでした。
自然画像の場合、端のピクセルを繰り返すか、内側へ戻るかしておくのが、
ごまかす方法としては無難かなと思います。
0619デフォルトの名無しさんNGNG
見えない部分は三次補間で予測
0620デフォルトの名無しさんNGNG
>見えない部分は三次補間で予測
Interpolationは良いが、Extrapolationは普通せんよ。
やるとしても、せいぜいリニアまでかと・・・。
0621619NGNG
うん。そう思う。
0622デフォルトの名無しさんNGNG
いきなり質問ごめんなさい。
Tiff(RGB非圧縮)からデータを取り込もうとしてますが、うまくいきません。

具体的には、ヘッダ・IFDを解釈してデータ部分を取り出すものの、 ずれ・データ余りが発生しました。
データ余りしたサイズ分をデータを読む前にスキップしてやるときっちりデータが取り出せたのですが、その余り部分が何に由来するものなのかわからない為、その固定サイズスキップをよしとできないでいます・・・

実際の流れは
1)GhostscriptのDevice=tiff24ncでpsからA4のピクセル指定で変換
2)Tiffヘッダ読み出し
3)IFDの解釈
 ・StripOffsetsやStripByteCountは値0
 ・IFDエントリでデータを示すポインタを持つものはIFDの後ろに続き、一番後ろを示すデータの末尾を、イメージデータの先頭とみなす
4)イメージデータを読み出す (1ラインが変換時の横指定ピクセルx3byteとし、縦指定ピクセル数読む)

上記のように行った場合に、ずれ・データ余りが発生しました。
ためしに余った分(テストしたケースでは20バイト)をIFDを読みきったあとにスキップした位置を、イメージデータの先頭とみなして切り出すと正しく動作しました。
これを見る限り、20バイトはヘッダの一部のように思えますが仕様書を見る限り何に由来するものなのか理解できません・・・

イメージデータの先頭を求めるには、StripOffsetsをみるか、IFDでデータが格納されたその直後位置、という見方だけでは不足しているのでしょうか?

長文ごめんなさい
0623デフォルトの名無しさんNGNG
>>622
> ・IFDエントリでデータを示すポインタを持つものはIFDの後ろに続き、一番後ろを示すデータの末尾を、イメージデータの先頭とみなす

IFDエントリのデータのサイズを計算するときに、TYPE によって異なるデータサイズを乗じていないとか。
0624622NGNG
>>623
反応ありがとうございます
私がちょっと考え違いをしていたみたいで、そもそもStripOffsetsが0であること自体が異常状態であるようで、基本的にはStripOffsetsを参照しなくてはならないように思います。
今回値が0になる原因は、gsは1ページデータ出力後にfseekで改めてStripOffsets等をセットしに行っており(確証はないのですがgsのソースを見るとそのように見えた)で、
解釈側はgsの出力をパイプで引き取っており、gsがfseekしようとしてもできないデバイスのためStripOffsetsを受け取ることができないという状態のように思われます。
一時ファイルを作成し、それを経由してアクセスすれば解決しそうですが、ディスク容量の問題が出てきそうなので、別の方法を検討中です^^;
お目汚し、失礼しました。
0625デフォルトの名無しさんNGNG
前スレ見たいけど見れない。過去ログ化されてないかしら。
どうやって探してよいのかわからず困っています。しくしく
0626デフォルトの名無しさんNGNG
http://mimizun.com:81/2chlog/tech/pc2.2ch.net/tech/kako/992/992671330.html
0627デフォルトの名無しさんNGNG
>>626 とってもとてもありがとうなのです。さんくす
0628622NGNG
目的の処理は、ppm(gsのppmrawデバイス)を使用することで簡単に実現できました。
無知は罪ですね・・・
0629デフォルトの名無しさんNGNG
二次元上でうまく光を表現したいのですが
うまい処理方法ってありませんかね?
具体的には、元画像上にライトがあって、
そのライトの光で元画像が照らされるような表現が
したいのです。普通どんな風に処理をしているのでしょう?
光の画像を用意しておいてα合成しかないのでしょうか?

教えて某ですいません。
0630デフォルトの名無しさんNGNG
どっかにシスプリのsusieプラグインないっすかねえ
0631デフォルトの名無しさんNGNG
>>629
レイトレーシングじゃだめ?
0632デフォルトの名無しさんNGNG
>629
画像の隣のピクセルの明るさの差で法線をでっち上げる
環境光とライトを設定して照明計算してレンダリング

3Dでの照明の基本はDirectXのSDKドキュメントあたりで十分読める。
0633629NGNG
ちょっとがんばってみます。
また報告に来ます。
0634デフォルトの名無しさんNGNG
画像の縦横の比って4:3が一般的ですよね.
この4:3って数字には何か特別な意味でもあるんでしょうか?
単純に見やすいから?

ついでにワイド画面の16:9にも同じ疑問が浮かびますが…
0635デフォルトの名無しさんNGNG
確かに何故だろうね。
人間の視界が横に広いからかね。
0636デフォルトの名無しさんNGNG
紙芝居に使われていた紙が4:3だったからだよ
0637デフォルトの名無しさんNGNG
そうか、初期のテレビのフレームは
紙芝居の枠を流用して作ってたんだ。
納得。
0638634NGNG
自己レスで申しわけないが,16:9に関しては見つかった.
4:3は・・・やっぱり見やすい(と考えられてた)から?

ttp://www.nhk.or.jp/strl/aboutstrl/evolution-of-tv/p16/
0639デフォルトの名無しさんNGNG
最近のワイド画面のテレビでも、普通の映像は横に引き伸ばされる?
あれだけはどうしても許せないんだけど・・・
0640デフォルトの名無しさんNGNG
そういやSXGAは1280×1024で5:4だな。なんで?
0641デフォルトの名無しさんNGNG
1280x1024x24bit=3.75MBで、
ビデオメモリが4MBで格納できて
なおかつ、縦・横幅とも切りの良い
サイズだから。

4:3には、あまり拘らなかったみたい<SXGA
0642デフォルトの名無しさんNGNG
今、考えてみるとSVGAって、1364x1023は、無理としても、
1360x1020は、横幅が12の倍数じゃないから駄目?
なら、1356x1017とかじゃ駄目だったのかなぁ?
0643デフォルトの名無しさんNGNG
上のは間違い。別に12の倍数じゃなくても良いんだ。
…何処から12の倍数が出てきたんだ?(w

じゃあ、1360x1020で良いのにね。
0644デフォルトの名無しさんNGNG
Photoshop等に実装されている、フィルタのアルゴリズムが
紹介されているページとかあれば教えてほしいっす。
0645640NGNG
>>641
おぉっ レスありがとう(・∀・)
0646デフォルトの名無しさんNGNG
>>639
板違いだが、普通ワイド変更方式何種類かと、ノーマルを選べるだろ。
ちなみに引き伸ばすのは、中央だけが焼けないようにするためという実用的な意味がある。

どうでもいいことだが、4x3=12だよな。12個の正方形に分割できるというか。
比に深い意味は無いんだと思うが、12進文化圏の感覚では自然な値なのだと思う。
更にどうでもいいことだが、16:9 は 4:3の二乗だよね。
0647デフォルトの名無しさんNGNG
横:縦:対角が3:4:5になるから計算しやすい。とか
0648デフォルトの名無しさんNGNG
>>647
私もそれかと思った。昔のブラウン管って完全に丸かったから、それに内接するような
長方形で切りのいい縦横比なのかな、と。

でも、ハイビジョンの16対9とかってのは、謎だね。あれ、最初NHKが提案したときは、
たしか、もうちょっと単純な整数比で 5対3とかだったような気もする。

映画のフィルムの形式とか、どういうふうに決まっているんだろうか?
0649デフォルトの名無しさんNGNG
Targaファイルを単純に読み込んで書き出すと
ファイルサイズによってファイルのbit情報が何故かぶっ壊れる。
ARGBがどうやら入れ替わってる様子なのだが
どうしてこうなるのかさっぱりわかんない・・・。

ちなみに開発環境はVC++6.0でコンソールで動作させてる
Targaファイルのフォーマットは
Ver2.0 フッター有 エクステンションフッター無 αチャンネル付 32bit
サイズはぶっ壊れるサイズで1280x960 ぶっ壊れないサイズで640x480

DirectXで1024のサイズ以上のファイル読み込めないから
わざわざ分割するツール作ったのにこの有様だ・・・・・

今日も朝になってしまったよ・・この年で徹夜はキツイ。
お願いします、どんな情報でもいいから教えてください・・・
0650デフォルトの名無しさんNGNG
DirectXの環境依存を気にするなら1024でも読み込めないのがあるぞ
0651649NGNG
>>650
基本的にはそこまで大きなサイズで分割する予定はなく
32x32とかで重複を消しファイルサイズを軽減する目的もあったのだけど
読み込んだ瞬間すでにbit配列がおかしくなっているのでどうしようも…

フッターまでちゃんと読み込めているのですが
何故か単純に書き出してみてもうまく元通りにならないのです…。
0652649NGNG
一応開発言語はANSICで組んでいます。
freadで一気にデータ部ぶっこ抜いてfwriteでそのまま書き出してます。
0653649NGNG
ずっとやってるのだけどわからないです・・・
神様降臨してください・・・。・゚・(ノД`)・゚・。

降臨期待age・・・
0654デフォルトの名無しさんNGNG
情報無さ杉なので O_BINARY を忘れているに一票。
0655649NGNG
スマソ・・・自己解決しますた・・・
0656デフォルトの名無しさんNGNG
解決したら原因と対応を書いてくれよ。気になるし。
また同じように悩んだ人の道標にもなるだろ。 ってもうこねーか
0657デフォルトの名無しさんNGNG
今テンプレートマッチングの研究やってるんだが
処理時間かかり杉。
いいアルゴリズムない?
0658デフォルトの名無しさんNGNG
どんなテンプレートでどんなアルゴリズムでどれくらい時間かかってるんだ?
で、目標時間は?
0659デフォルトの名無しさんNGNG
tiffファイルの読み込み&書き込みの仕方が
書いてあるページ教えて!!
0660デフォルトの名無しさんNGNG
>>659
http://ikemoto.atnifty.com/soft/manual/ch4_4.html
0661デフォルトの名無しさんNGNG
>>659
fopen、fread、fwriteでぐぐれ
なんと、tiffだけじゃなく、ほぼ全ての形式が読み書きできる優れものだ。
0662565NGNG
365
0663デフォルトの名無しさんNGNG
tiffのファイルフォーマットが知りたいのだが。
ヘッダ情報とか。
0664デフォルトの名無しさんNGNG
http://www.google.co.jp/search?q=tiff+file+format&ie=UTF-8&oe=UTF-8&hl=ja&lr=
0665デフォルトの名無しさんNGNG
ここってレイトレーシングのこと質問してもいいですか?
0666デフォルトの名無しさんNGNG
>>665
レイトレが画像処理に入るとは思えないが、プログラム板には他に該当しそうなスレはないなぁ。

しいてあげるなら、CG板の
http://pc3.2ch.net/test/read.cgi/cg/1025138347/
かな。

0667デフォルトの名無しさんNGNG
リアルタイムじゃないCGスレが欲しいけど
スレ運用していく自信がないよ。・゚・(ノД`)・゚・。
0668デフォルトの名無しさんNGNG
確かにそういうスレは欲しいな。
今時、3DCGプログラミングとかいうと、OpenGL とか Direct3D とかを使うだけなんだもんなぁ。
面白くない。

昔、ラジオシティとかを語っているスレを見た覚えがあるのだが、
どの板で見たのか覚えてないや…
0669デフォルトの名無しさんNGNG
>>668
これか?
http://that2.2ch.net/test/read.cgi/disco/1070241784/l50
0670デフォルトの名無しさんNGNG
VC++ SDKを使って画像の縮小処理をしたいのですが
縮小アルゴリズムの名前はよくでているのですが具体的なアルゴリズムや
ソースが見つかりませんどなたか知りませんか?

知りたいアルゴリズム
・ニアネストネイバー
・バイリニア
・バイキュービック
・面積平均法
・ラグランジュ補完法
0671デフォルトの名無しさんNGNG
>>670
縮小というのが、大幅に縮小するのか、ほぼ同じ解像度で微妙に縮小するのかで話が変わってくるが、以下は大幅に解像度を落とす場合の話。

ニアレストネイバー、バイリニア、バイキュービックは拡大のためのアルゴリズムだから縮小には関係ない。
(微妙な縮小ならバイリニア・バイキュービックは有効)

ラグランジュ補間は縮小にも使えんこともないけど、次数よりも小さい比率で縮小するならあまり意味は無い。

大幅に縮小するなら、面積平均法が単純確実。

面積平均法って難しい呼び方してるけどやってることは単純。
解像度を縦横半分にするなら、縦横2ドットずつの4ドットの平均色をとっていくだけ。

縮小倍率が半端な時はちと面倒。悩んでくれ。まあ、Bresenham が手軽かな。

あとは、あらかじめローパスフィルターを通すという技もある。
0672デフォルトの名無しさんNGNG
なんつうか、そこまで他力本願でどうするんだという気もする。
最近傍法のアルゴリズムくらい、考えるほどのもんでもないだろう。
それぞれの名前で検索すりゃ、情報はいくらでも出てくると思うが・・・
0673デフォルトの名無しさんNGNG
>>671
別にニアレストネイバー、バイリニア、バイキュービックは縮小でも使えるけどな。
0674デフォルトの名無しさんNGNG
画質はともかく、普通に使うよな
むしろ、面積平均法が縮小専用のアルゴリズムだ、という言い方をするべき
0675デフォルトの名無しさんNGNG
っていうか、バイリニアと面積平均法って兄弟みたいなものなんじゃ…
0676デフォルトの名無しさんNGNG
ソースはまだですか?
0677デフォルトの名無しさんNGNG
>675
ぜんっぜん違うだろ
0678デフォルトの名無しさんNGNG
>>676
ほらよ。
http://www.komi.co.jp/my_mother_source/koikuti_town/main07.html
0679デフォルトの名無しさんNGNG
>>678
ふざけんな!

ソースをかけるのはちゃんぽんではなく皿うどん
0680デフォルトの名無しさんNGNG
(´−`)・・・
0681671NGNG
ニアレストネイバーは縮小にも使えますね。すみません。
>>673
解像度を9/10に縮小、ぐらいだったらバイリニアやバイキュービックは使えるけど、
解像度を1/10に縮小、とかだったらバイリニアやバイキュービックは意味がないでしょう。ニアレストネイバーとほとんど同じ結果になるし。



0682デフォルトの名無しさんNGNG
>>681
意味無いわけねーって。
フォトショなら2回に分けて縮小したりするがな。
0683デフォルトの名無しさんNGNG
つーわけで、拡大も縮小も最終画像を得るにはlanczos3を使うのがまぁ妥当というとこだな。
ニアレストだとエイリアス大杉だし、高速モードにはバイリニアかな。
0684デフォルトの名無しさんNGNG
>>677
補完対象をsrcとdestで交換しただけなんじゃ…
0685デフォルトの名無しさんNGNG
>>684
意味不明…
それぞれ説明してみろ。
0686デフォルトの名無しさんNGNG
むしろ>>685が説明して意味不明なことを証明すべきだな
0687デフォルトの名無しさんNGNG
>>686
分からんなら分からんと正直に言おうね。
バイリニアってのは常に4点しか使わんのよ。
面積平均はその名の通り縮小率が上がるほど使うピクセルは多くなる。
0688デフォルトの名無しさんNGNG
子供かお前らはw
0689デフォルトの名無しさんNGNG
>>688
じゃぁLanczos3よりいいの教えてくれ。
0690デフォルトの名無しさんNGNG
>>689
Lanczos3のソースを貼れば教えてやるよ
0691デフォルトの名無しさんNGNG
>>690
Lanczosも知らんやつにそれは無理だな。
だいたいググることも知らんのは低脳そのもの。
0692初めてのTIFFNGNG
あちこちのスレを見て、libtiff3.dll を知って、自分のブラウザに組み込みました。
bitmap への翻訳は、tiffile.c を参考にしました。
で、pics フォルダにある .tif ファイルを見たのですが、5枚は出てきません。
不審になり、他の viewer (といっても Kodak....exe, ZoomBrower, など数種
ですが)を試しましたが、デジカメに付いていた ACDsee 以外はこの5枚は出て
きませんでした。
安直な質問ですが、TIFF viewer はこのレベルで、通用するものと思ってよろしい
のでしょうか。(IrfanView は出ませんねえ)
諸兄の所見を聞かせて下さい。
0693デフォルトの名無しさんNGNG
lanczosあげ
0694デフォルトの名無しさんNGNG
ソースまだ〜チンチン
0695デフォルトの名無しさんNGNG
>>678
0696デフォルトの名無しさんNGNG
なんで荒れてるの?
画像処理って良い情報がwebにないからかな。
0697初めてのTIFFNGNG
692 で5枚というのは、4枚の間違いでした。(全部で22枚)
で、1枚は 64 bit data で非対応、2枚は解凍非対応で、1枚はなんもメッセージを
返さないことが分かりました。
0698デフォルトの名無しさんNGNG
>692
その程度でTIFFに完全対応というのは...
行儀の悪いTIFFが世の中になんて多いことか
でも、100%全てのTIFFが読めるViewerはおそらくないので徐々に対応していけばいいと思うが
0699初めてのTIFFNGNG
>>698
ご意見をどうもありがとうございます。
完全対応しようとは思いもよりませんが、他で、Canon のデジカメのデータは
非公開とか聞き、先々 EOS かなと思っていたので、詮索し出したところです。

半分愚痴ですが、jpeg, zlib 関係の library はあっちでもこっちでも、
それぞれの名前のを入れないといけないというのは、鬱陶しいですねえ。
0700デフォルトの名無しさんNGNG
>>682
1/整数 で縮小するんなら、バイリニアもバイキュービックもニアレストネイバーと全く一緒。
0701デフォルトの名無しさんNGNG
>700
言いたい事はわかるが、だから縮小に使えない、とは別の話だな

それにしても、写真屋ではそういう場合でもきちんと綺麗に縮小するんだよね。
まあ、縮小時にもその3つしか選択が無いので綺麗に出来なきゃ困るんだけど、
どういうやり方してるのか、ちょっと気になったりもする。
0702縮小質問者(670)NGNG
プログラミングをしない人でも聞いたことがあるような
名前だけは有名なアルゴリズムなので簡単に見つかるかと
思って自分でも探したのですが結構見つからないものですね
本屋で書籍も結構調べてますが、画像の加工(エフェクトとか)やレイトレーシングに
ついての本や公式のみが書いてある本がほとんどで縮小に関してはバイリニア等の
名前すらでてない本がほとんどです
Cマガで連載していた昌達K'z氏の画像処理を極めるアルゴリズムラボに
縮小に関してのアルゴリズムがでていたらしいのですがCDロム化より古い時に
連載されてるようなので入手困難になってるようです
書籍ででたら即購入したいのですが・・・とほほ・・・
0703デフォルトの名無しさんNGNG
>>700
そんなわけねーw

>>701
どういうって、素直にやってるだけに見えるが。

>>702
結局単なる畳み込み。Lanczos3でやれば必要十分だ。
0704デフォルトの名無しさんNGNG
こことか

http://www.geocities.co.jp/Playtown-Spade/4804/biliner.htm

ここのAUFの中とか

http://www.marumo.ne.jp/
0705デフォルトの名無しさんNGNG
>703
知らないって事は、けして恥ずかしい事じゃない。
自分の無知を認めない事が恥ずかしい事なんだ。

よーく考えてみるんだな。
0706デフォルトの名無しさんNGNG
>>705
釣りじゃなく本気のようだなw

例えばだな、1ピクセルごとに白、黒、白、黒…となっているイメージを1/2に縮小すること
を考える。ニアレストネイバーなら真っ白か真っ黒になるわけだ。それが他と同じなのか?
0707デフォルトの名無しさんNGNG
>>705
で、お前は認めないのか?
恥ずかしいな。
0708デフォルトの名無しさんNGNG
>704の下のとこのアルゴリズムの説明を読めば、目から鱗が落ちるかもな
0709デフォルトの名無しさんNGNG
>>708
その辺はまだまだレベルが低かったようだな。
こっちにはLanczosのことも書いてあるな。まぁアニヲタなんてこんなもんだろ。
http://www.marumo.ne.jp/db2001_7.htm#4
0710デフォルトの名無しさんNGNG
(゚Д゚)ハア?
0711デフォルトの名無しさんNGNG
>>700 >>708
ab
cd
の4点を1/2(つまり1点ね)にバイリニアで縮小するなら(a+b+c+d)/4にするだろ。
なんでaにするのかね。そりゃそんな取り方すれば同じになるさw
0712デフォルトの名無しさんNGNG
「レベルが低い」「詳しくない」は、大抵「俺には理解できない」を指す言葉です

0713デフォルトの名無しさんNGNG
どこがバイリニアだ
0714デフォルトの名無しさんNGNG
>>713
おいおい、お前もかw
少しは考えろよ。お前式で計算するとどうなるのが正しい?w
0715デフォルトの名無しさんNGNG
>>711
頭悪くて固そう
単純な1/2しかしないっていうんならともかく、
一般の縮小が可能なアルゴリズムを考えるときに、
どこが縮小の中心になるかによるとは思わんのだろうか。
で、普通は整数座標が縮小の中心になるもんだ。
0716デフォルトの名無しさんNGNG
>711
なんだそれ・・・バイリニアのアルゴリズム知らんのか?

画像を縮小する場合の考え方として、縮小後のとあるピクセルが
元画像のどこにあるかを計算して、そこから各縮小アルゴリズムに拠って
そのピクセルの画素を計算するわけだ。

で、整数で割った場合。
0、1、2 という位置のピクセルが元はどこにあったかを計算するのに、
(縮小後位置÷倍率)と言う式にあてはめると、例えば2で割ったなら
0、2、4 となるわけだ。
このように、元画像での位置が整数の場合、バイリニアやバイキュービックの
アルゴリズムを使って周囲のピクセルに重みをかけても、
結果はそこのピクセルをそのままつかうだけになる。
つまり、706にある通り、真っ白か真っ黒になるわけだよ。

0717デフォルトの名無しさんNGNG
ただ、これには多少問題がある。
この(縮小後位置÷倍率)という位置の割り出し方をすると、
縮小の基準点が左上の原点になるわけだ。
そうすると、微妙に右端が切れたりとかするわけ。

だからこれを、画像の中心を基準にして縮小しようと思ったら、
(縮小後位置+0.5)÷倍率+0.5 という式を使う。
この場合は、706の画像の縮小結果は灰色一色になる。
0718デフォルトの名無しさんNGNG
あ、まちがった・・・

(縮小後位置 + 0.5)÷倍率 - 0.5

が正解だな
0719デフォルトの名無しさんNGNG
これくらい、実際に書いたことがあれば誰でも知ってる事だ。
というわけで、711はもっと勉強するべし。
どうせ、さっきから主張しまくってるLanczos3も。自分じゃソース書けないんだろ?
0720デフォルトの名無しさんNGNG
>>717
だから灰色になるのが正しいわけだよ。

>>719
Lanczosも単に2次元重畳の係数がそうなだけ。SSE化までならしてみたが?
0721デフォルトの名無しさんNGNG
>>720
ちなみにPentium4 1.8GHzで2500x2000の画像で1枚2秒くらいだ。
まともにやってるから結構時間はかかるな。
0722デフォルトの名無しさんNGNG
>720
いるよなあ、こういう、人が解説した後に「そういう事なんだよ」っていばる奴。
711みたいな事言った後に何を言っても説得力はないぞ。

「やった」ってのもいくらでも言えるしな。一部でもいいからソースだしてみろって。
0723デフォルトの名無しさんNGNG
そういう事なんだよ。
0724デフォルトの名無しさんNGNG
この雰囲気なら訊ける。

ローパスフィルタってなんですか?
0725デフォルトの名無しさんNGNG
ぼかし。
0726デフォルトの名無しさんNGNG
あー、なるほど。
あらかじめぼかしてから縮小する事によって、ごまかすって事かあ。
サンクス、勉強になった。
0727デフォルトの名無しさんNGNG
>>724
LPF, Low Pass Filter == High Cut Filter
HPF, High Pass Filter == Low Cut Filter
BPF, Band Pass Filter
0728デフォルトの名無しさんNGNG
>>726
あぁ、アニヲタのページ見たのか?
そんな2度手間しなくとも重畳すれば1発なのにな。絵も綺麗になるし。
0729デフォルトの名無しさんNGNG
>>722
しかし、お前なんでこのスレにきてるんだ?バイリニアも知らずに。

ppackは楽でいいね。
    w0 = _mm_mul_ps(_mm_set_ps1(p[0]), *(__m128 *)(q + 4 * 0));
    w1 = _mm_mul_ps(_mm_set_ps1(p[1]), *(__m128 *)(q + 4 * 1));
    w2 = _mm_mul_ps(_mm_set_ps1(p[2]), *(__m128 *)(q + 4 * 2));
    w3 = _mm_mul_ps(_mm_set_ps1(p[3]), *(__m128 *)(q + 4 * 3));
0730デフォルトの名無しさんNGNG
お、ソース出てきたね。すごいすごい。誉めてやるよ。

ところで、バイリニアを知らんのは>711だろ
0731デフォルトの名無しさんNGNG
>>730
おいおい、711も俺だよ。
だからお前式を書いてみろよ。
0732デフォルトの名無しさんNGNG
式は>704のリンクで十分だろ。
711のやり方だと、9点を3で割る場合も全部足して9で割るつもりか?
すげえバイリニアだな、おいw
0733デフォルトの名無しさんNGNG
>>732
おいおい...
いいからその1/2の場合の式をここに書いてみろって。
0734デフォルトの名無しさんNGNG
(a * 0.5 + b * (1 - 0.5)) * 0.5 + (c * 0.5 + d * (1 - 0.5)) * (1 - 0.5)

書いたが?

0.5 * 0.5 * (a - b - c + d) + 0.5 * (b - a) + 0.5 * (c - a) + a

こっちのほうがいいか?

0735デフォルトの名無しさんNGNG
>>734
で、それは>>711とどう違うんだね。
0736デフォルトの名無しさんNGNG
>735
結果が違うかどうかが問題じゃないだろ、アホかよ
0737デフォルトの名無しさんNGNG
そうすると、4点を1/2にする場合、バイリニアだけでなく
バイキュービックも平均画素も(a+b+c+d)/4になるな。こりゃすげえ。

これらは全て、711の脳内では同じアルゴリズムだったわけだ。
0738デフォルトの名無しさんNGNG
むしろ、>711に>732の場合の式を書いてもらいたいな
0739デフォルトの名無しさんNGNG
>>736
おいおい…ちゃんと流れを読めよ。
>>700の間抜けに説明するのにバイリニアを簡単に説明するのに4点1/2で説明した
だけだぞ…
結果が違うかどうかか問題じゃない?どういう意味?w
0740デフォルトの名無しさんNGNG
下手な説明は混乱の元って事かな
0741デフォルトの名無しさんNGNG
>バイリニアで縮小するなら(a+b+c+d)/4にするだろ。

これのどこがバイリニアを簡単に説明したものなのか、
お前の思考順路を覗いてみたいもんだな。

いいからその1/3の場合の式をここに書いてみろって。
0742デフォルトの名無しさんNGNG
>>741
真中1点の色になる。
バイリニアだと縦横1/2より縮小すればエイリアスが出るってこった。
0743デフォルトの名無しさんNGNG
>>742
あぁ、一応言っておくと、バイリニア(に限らんが)常にエイリアスは出る。
もちろん、エイリアスの出る周波数成分があればだが。
0744デフォルトの名無しさんNGNG
>式をここに書いてみろって

文盲ですか?
0745デフォルトの名無しさんNGNG
>>744
結局ただのバカか?
0746デフォルトの名無しさんNGNG
はあ、、、なんつうか、人の話を聞かない人間と話すのは疲れるよ

とにかく、(a+b+c+d)/4 という式は、バイリニア縮小の式じゃないだろ?
たまたま結果が同じだろうがそんな事は関係ない。
>742にしてみても、お前の脳内計算の結果なんか誰も聞いてないし。

知識があるのか無いのか知らんが、もう少しまともな会話ができるようにしろよ・・・。

>結局ただのバカか?
こりゃ思いっきり俺のセリフだ。
0747デフォルトの名無しさんNGNG
係数ごとにいちいちソースを書くんだよ。
もちろん少数倍率にも対応するため膨大なサイズになる。
0748デフォルトの名無しさんNGNG
>>746
ほんとに流れを無視する間抜けだな...
>>711はバイリニアで縮小した結果の話をしてるんだよ。

>>747
誤爆か?w
0749デフォルトの名無しさんNGNG
>748
はいはい、次はもう少し相手に理解してもらえる話が出来るようにがんばろうね
0750デフォルトの名無しさんNGNG
>>749
かわいそうに。
0751デフォルトの名無しさんNGNG
ここも一気に低レベル化したなw
小学生が必死に聞きかじりの知識を喚きあっているようだ・・・・。
0752デフォルトの名無しさんNGNG
で、670は少しは先に進んだのか?
0753デフォルトの名無しさんNGNG
>>751
なんだかレベルが高そうなので教えて下さい。
ピントの暈けたデジカメ画像を復元するソフトを作りたいのですが、そういう
ツールやライブラリがあれば教えてくれませんか?
このソフトはどうやってるか分かりますか?
http://www.nyanko-web.com/rescue/
逆フィルターとかウィナーフィルターというのを使えばいいのかなと思うのですが。
0754デフォルトの名無しさんNGNG
誰が誰なのかわからん…
0755デフォルトの名無しさんNGNG
>>748
過程が重要な話題で結果だけ書くのはどうかと。
ましてや関係ない式を書いて誤解されたら逆切れってのは…。
0756縮小質問者(670)NGNG
なんだか話が活発になってるというか荒れてるのでしょうか・・・

>>752
とりあえず >>704氏のリンク先でバイリニアを勉強中です
自分でしっかり理解してからソース書いてみます
ニアレストは「創作プログラミングの街」のに載ってました
平均画素法も載ってるかも?(未検証)
日記のほうのHPにバイキュービック、平均画素法、Lanczosの
アルゴリズムについて載ってるようなのでじっくり勉強してみます
0757デフォルトの名無しさんNGNG
>755
アホはほっとけよ。
常に自分が一番、自分の事を理解できない奴はクソって世界で生きてるんだから。
0758デフォルトの名無しさんNGNG
>>757
こんな初歩のレベルで可哀想に...
0759晒し上げNGNG
画像処理の初歩=バイリニア=(a+b+c+d)/4
0760デフォルトの名無しさんNGNG
>>758
0761デフォルトの名無しさんNGNG
マスク付きの画像にアンチエイリアスをかけたいのですが、
マスクとマスクでない部分との境界がどうしてもギザギザになってしまいます。
何か良いアルゴリズムはないでしょうか。
ただしアルファは使わないアルゴリズムでお願いします。
0762デフォルトの名無しさんNGNG
>>753

アンシャープマスクじゃ物足りない?
あと、この種のアルゴリズムは、ライブラリより自分で実装して行ったほうが楽しいよ。
0763デフォルトの名無しさんNGNG
>>761
マスクが無いように読んで計算、書くときにマスクを考慮、でダメなの?

>>762
はい。
もちろん、自分で実装できるだけの情報があればしてもいいと思っています。
0764デフォルトの名無しさんNGNG
>>754
うん。せめて過去に発言したレス番号を名前欄に入れるくらい、やって欲しいな・・・
0765デフォルトの名無しさんNGNG
>>764
2chで何言ってんだかw
0766デフォルトの名無しさんNGNG
>>765
ん? 2ちゃんでも、議論になったら捨てハン使ったりするのは珍しくないと思うが・・・ ?
0767デフォルトの名無しさんNGNG
先日ゴールデンウィークが終わったと思ったら、もう夏がきたのか。
時が経つのは早いなぁ。
0768デフォルトの名無しさんNGNG
>>721
少し計りなおした。Lanczos3で、3000x2000の画像を1/4縮小で0.5秒、
720x480->640x480だと0.04秒くらいだった。25(フレーム/秒)相当。
Pentium4 1.8GHz、画像ファイルの読み書きは除いたメモリ上での変換時間。
遅い?速い?
0769デフォルトの名無しさんNGNG
>>721
は10枚変換する時間だった。
0770デフォルトの名無しさんNGNG
>>768
遅い
0771デフォルトの名無しさんNGNG
>768
聞いてねえよカス
速度なんか環境によって違うし、比較しようがないだろ
0772デフォルトの名無しさんNGNG
>>771
そうだな。
0773デフォルトの名無しさんNGNG
720x480->640x480、少し最適化して35(フレーム/秒)。

>>771
心配するな、お前には言ってない。
0774デフォルトの名無しさんNGNG
>>768
遅いか速いかは用途にもよる。
文書画像ビューワに使うには、お話にならないほど遅い。
動画像表示向けなら、かなり遅い。
デジカメ画像専用ビューワなら、許せるかも。
0775デフォルトの名無しさんNGNG
なんかすっかり痛いスレになってるなぁ
0776デフォルトの名無しさんNGNG
>>774
いや、アニヲタさんのAviUtlとかその他Lanczosが使えるソフトの速度と比べてどうかと
思ってね。
http://www.marumo.ne.jp/auf/
http://www.avisynth.org/index.php?page=Resize
http://hp.vector.co.jp/authors/VA015850/software/wisteria.html
http://www8.plala.or.jp/kusutaku/iview/
http://www.imagemagick.org/www/perl.html
0777デフォルトの名無しさんNGNG
アニヲタ、アニヲタって○もを見下したいようだけどさ
そんなつまらない自尊心のためにこのスレでそんなやつと比較しようなんて考えるなよ。
最適化スレとか、AVIUtlプラグインスレで自慢してくれば?
0778デフォルトの名無しさんNGNG
「○も」って何でつか?
0779デフォルトの名無しさんNGNG
縮小で盛り上がっている?ので便乗質問させてください。
画像向きのマルチレート信号処理についてなんか良い本しりませんか?
洋書でも良いですけど、1万円ちょっとまでで買えるのが良いです。
0780名無し@沢村NGNG
おまいらよ、おれが無圧縮GIFについて教えてやるから、ちょっと聞け!!
特許に触れずにGIFがつくれる完全な解説だから、ROMれ。
まずGIFフォーマットだが、いろんなサイトに解説が書いてあり、読めばこれは幼稚園でもわかるから、フォーマットについては書かん。
問題はGIFのデータ列だ。これは検索しても、英文の技術文書しか出てこんから、英語のできんおまいらにはわからんだろう?
また英語ができても幼稚園でもわかるようには解説してないから、読んでもわからんはずだ。
だがこれを読めば幼稚園でもわかるよ。
さて問題のGIFのデータ列だが、フォーマットには、圧縮ビットサイズ、ブロックサイズ、データ列、ブロックターミネータと書いてある。
これは全部重要だ。
さてGIFをつくる場合、まず圧縮ビットサイズを求めることから始めるんだ。
そこで圧縮したいビットマップのカラーテーブルを見る。カラーテーブルの配列数が16なら、16を表すには4ビット必要だから4になる。
最大の256色が使われている場合は、8だ。
次にデータ列だが、データ列はクリアコードからはじまる。
クリアコードは圧縮ビットサイズ*圧縮ビットサイズだ。
つまり2なら4。4なら16。8から64だ。
そしてふつーのデータ列が続くが、ふつーのデータ列のひとつのサイズは、圧縮ビットサイズ+1だ。
つまり2なら3ビット。4なら5ビット。8なら9ビットだ。
だがふつーデータは8ビットごとに表されるから、8ビットの中に例えばひとつ3ビットずつのデータを右から左にパックしていくんだ。
例をあげると、ビットマップのカラーテーブルが、
RGB[0]=00,00,00
RGB[1]=FF,FF,FF
と白と黒の2つで、ビットマップデータが0,1,0、つまり黒、白、黒と3ピクセルのデータだった場合、
GIFでは、まず圧縮ビットサイズが2だから、クリアコードは4になり、
GIFのデータ列は、最初がクリアコードだから、100。
データ列は圧縮ビットサイズ+1の3ビットで表されるから、000,001,000になる。
これを右から左にパックして、8ビットずつで表すと、01000100,0000だ。
0781名無し@沢村NGNG
続きーー

またデータ列の最後には終了コードがくることになっていて、終了コードはクリアコード+1で表される。つまりこの例の場合4+1で5だ。
だから終了コードを加えると、01000100,01010000になる。つまり16進数で44 50になるというわけだ。
つまりビットマップの00 01 00というデータ列が、GIFでは44 50というデータ列になったというわけだ。
これが無圧縮GIFエンコードのすべてだが、たくさんのデータ列を扱うときには、
2の圧縮ビットサイズ−2乗個ごとにクリアコードを挿入しなければならないことを付け加えておくぞ。
おまいらよ、これで特許に触れないGIFエンコーダができるぞ。
おれは神だ。
0782デフォルトの名無しさんNGNG
>>780-781
まぁ来月には特許も切れるらしいがw
http://tohoho.wakusei.ne.jp/wwwxx051.htm
0783デフォルトの名無しさんNGNG
>>780-781
すばらしい。神業だ。

あたしゃ、未だに動くやつが分からん。いつか解説して。
0784デフォルトの名無しさんNGNG
>2の圧縮ビットサイズ−2乗個ごとにクリアコードを挿入しなければならないことを付け加えておくぞ。
たいていの場合もっと沢山入れなきゃいけなかったような気が・・・
0785デフォルトの名無しさんNGNG
画像処理とはちょっと違うと思うんですが、
適当なスレが見つからないのでここで質問させてもらいます。

レイトレでボリュームライトなどの発光体を描画するにはどんなデータ構造や
処理を行えばいいのでしょうか。
0786デフォルトの名無しさんNGNG
>>785
レイトレでやるなら点光源のかたまりにするしかない。
ボリューム内に一定間隔おきに分布する点光源を作って、あとは点光源として処理する。
データ構造については、ボリュームをどういう形式で持つか次第だな。


0787785NGNG
>>786
やっぱりというかなんというか、そんな感じにするしかないですか。
自分は、光源ていうのは実際に光る光源じゃなく、理論上の光源を与えて
物体の鏡面反射・拡散反射を計算するくらいしかやったことないんですが、
点光源の集合として処理するというのは、輝度を持ったボリュームデータとして
扱うということになるんですよね?
あ、それとも「ボリューム」ライトって言っちゃうと
ボリュームレンダを前提とした話になっちゃうんでしょうか。
言葉の細かい定義は詳しくないんですが、今求めてるのは
グロー(グレア?)が近いかも知れません。
と言ってもチンダル現象とかも描き出したいので結局のところ
ボリュームデータを扱うことになるかも。

MAYAのイナズマなんかはかなりはやいレンダリング処理を
してるみたいですが、どんな計算してるんでしょうね。
0788786NGNG
>>787
それはボリュームライトじゃないですね。
レイトレの場合(というか3DCGの場合)、光源とは画面上にレンダリングされない「理論上の光源」のことを指し、
「実際に光る光源」(たぶん、蛍光灯とかを表現したいということですよね)
なんていうのは光源とは呼びません。

で、そういうグローを表現したいのでしたら、

・非常に明るい物体としてレンダリングする
・作画後の画像に、後処理として、オーバーフローした画素の明るさを周りに分配する

という処理になります。
0789デフォルトの名無しさんNGNG
>オーバーフローした画素の明るさ
現実世界では、瞳孔が閉じて見えてくるわけだけど、
静止画でそれを模倣するのは所詮無理なのかしらん・・
0790786NGNG
>>789
画素の明るさを浮動小数点とかで持っておいて、
表示の段階で整数に変換すればいけるよ。
絞りを開けてる=0.0〜1.0 を 0〜255 に変換
絞りを絞ってる=0.0〜10.0 を 0〜255に変換
みたいな感じ。

キーワードは HDRI (High Dynamic Range Image)かな。
0791デフォルトの名無しさんNGNG
>>789
瞳孔以外にも、網膜には感応性が高い細胞と低い細胞があるんで、
眼のダイナミックレンジ自体も結構広いんだよね。

逆光でフラッシュたかなくても普通に人の顔とか良く見えるでそ。
0792785NGNG
たぶん的確な方法ではないと思いつつ、他に思い当たらなかったので
点光源の周りの空間にランダムにフォトンをとばす感じで
改悪擬似ボリュームレンダリングをしてみました。

・・・煙みたいになりました。

正直>>789-791あたりの話まで深く考えてなかったというか
言われて初めてああそんな話もあったな、なんてレベルですが、
市販ソフトがやってるような綺麗な発光体や
窓から差し込む光なんかを記述するのは無謀でしょうか。
レンズフレアはすでに当面諦めてますが。
0793786NGNG
>>792
・発光体
そのやりかただと、発光体の手前に半分覆うような物体があった場合、覆われてない側にしかグローもどきが作画されない。
実際には、光源より手前の物体にもグローが加法混色される。

これは、現実の世界の話として、発光体の周りのグローは撮影するレンズやフィルム上で発生するものだから。
三次元空間的に処理するのは間違いで、レンダリング後の画像に二次元的に処理するべき。

で、やり方は >>788 で書いた通り。もうちょい詳しく説明すると、
・通常の作画が明るさ 0.0 〜 1.0 になるようにしているとしたら、発光体はたとえば明るさ 10.0 になるように質感設定する。
・作画後の明るさが 1.0 を超えるピクセルについて、1.0 を超えている分についてぼかし処理をかける。(この場合
明るさ 9.0 をぼかし処理する)
・1.0を超えてない部分のピクセル値と、1.0を超えてぼかし処理を行った結果のピクセル値を合計する
といった感じ。
0794786NGNG

・レンズフレア
これもあまり難しくない。作画後の2次元レベルの処理として、輝点と画面中心を結ぶ直線上に、
輝点と画面中心との距離を基準として、円(や六角形)を重ねていくだけ。
たとえば、Photoshopの「逆光」は
・中心から輝点方向に1.3倍の位置を中心に、白い円環(小)を描く
・輝点と同じ位置を中心に、赤い円環(中)を描く
・中心から輝点方向に0.2倍の位置を中心に、橙の円(小)を描く
・中心から輝点と逆方向に0.5倍の位置を中心に、橙の円(中)を描く
・中心から輝点と逆方向に1.4倍の位置を中心に、白い円環(大)を描く
・以下略
みたいな感じになる。どの位置にどんな大きさの円を描くかがキモかな。
まずは Photoshop の逆光を見てまねをするのがいいかと思う。

・窓から差し込む光
これがいちばん難しい。
たぶん手っ取り早いのはシャドウポリゴン方式
光源方向から見た物体の輪郭に対して、光の方向に沿ったポリゴンを生成するのが「シャドウポリゴン」で、
これは本来、Zバッファで影表現するための「影の内外判定用ポリゴン」なわけだが、
言い換えれば「光の内外判定用ポリゴン」でもあるわけだ。
で、レイをトレースする過程で、シャドウポリゴンと交差して光の中を進んでいる間、
チンダル現象的輝度上昇に合わせた輝度加算を行うようにする。

あ、レイトレだったらポリゴンにまで落とす必要はないから、
「光源方向からみた物体の輪郭を光の方向に延長したボリューム」を
「光の中だよボリューム」として、レイがそのボリュームを通った距離に比例した輝度加算を行えばいいかな。

0795名無し@沢村NGNG
おい、おまいらよ、無圧縮GIF変換ソフトつくったから、
ちょっと見ちみれ?

http://hp.vector.co.jp/authors/VA015412/

アルゴリズムは>>780>>781で紹介しているとおりだ。おれは神だ。
0796デフォルトの名無しさんNGNG
今更作ってもなぁ・・・
0797785NGNG
>>793-794
発光体はなんとか形になりました。
フレアもなんとかなりそうです。
でも差し込む光は・・・勉強してなんとかします。
ボリュームって、概念について書かれたものはよく見かけるんですが、
サンプルプログラムとかはあんまり見かけなくて
データ構造とかあたり判定とかイマイチつかめないので、
ポリゴンのほうがうまくできそうです。
詳しい説明ありがとうございました。
0798デフォルトの名無しさんNGNG
無圧縮GIFで検索すれば色んな情報やソフトがボロボロでてくるわけだが・・・
0799デフォルトの名無しさんNGNG
つーかUNISYSの特許に抵触しないGIF圧縮アルゴリズムと称するもののが発表されてから
もう何年たってるよ?
0800デフォルトの名無しさんNGNG
そもそも特許切れ目前なんですがw
0801名無し@沢村NGNG
>>798
フリーのGIFコンバータはおれのしかねーよ!!
日本ではUcGIFがあるが、これはコマンドプロンプトから使うやつで、GUIソフトではない。
日本には他にフリーはない。
海外にはビットマップはおろかJPG,PNGなどいろんなフォーマットからGIFに変換できる高性能のがあるが、
あいにくおれは英文読めなくて使い方わからんので、ないのと一緒だ。
また一般のユーザーは英文読めないから、これまた一般のユーザーにとってもないのと一緒。
つまりフリーでGUIのGIF変換ソフトは、おれのしかないの。現時点ではね。おわかり?
0802名無し@沢村NGNG
>>799
ここのことか?
http://homepage1.nifty.com/uchi/index.html
このアルゴリズムで実際にソフトつくったやつはいねーよ!!
おれも読んだが、理解できんかった…^^;
0803デフォルトの名無しさんNGNG
>801
既存の情報で、しかももう価値の無いものを作るバカはお前だけってこった
0804デフォルトの名無しさんNGNG
AIって知ってる?
0805デフォルトの名無しさんNGNG
>>801
ペイント
0806デフォルトの名無しさんNGNG
>>802
理解できない?そんな簡単なものが?

susieのプラグインとして、実装してあるぞ。
0807名無し@沢村NGNG
>>806
簡単?おまいが実装したのか?
0808デフォルトの名無しさんNGNG
>>806
俺だってわかるぞ。

自分でまったく0から考案するならそれなりに時間は必要だろうが、
そこに書いてあることを理解するのもそう造作もないだろ。
0809デフォルトの名無しさんNGNG
うちのばあちゃんも理解できるって言ってました
0810デフォルトの名無しさんNGNG
8月に生まれる予定の子供も(略
0811デフォルトの名無しさんNGNG
Tkの出力するGIFはLZW使ってないからTcl/Tkで
GUIソフト作れば10分で作れると思うけど。なんで
そんなことをがんばってんの
0812デフォルトの名無しさんNGNG
http://tohoho.wakusei.ne.jp/wwwxx051.htm

米国で 2003年6月20日、特許の有効期限が切れました。心配されていた期間延長目的の追加特許の申請も無いようです。日本でも 2004年6月20日に有効期限が切れます。もう少しの辛抱ですね。

>795はアホ。
0813デフォルトの名無しさんNGNG
やべ沢村にレスしちゃった・・・
0814名無し@沢村NGNG
>>808
おれは書いてあることを理解するのは苦手だ。
自分で0から考案するほうが楽だ。
0815名無し@沢村NGNG
>>811
うおっ!!Tcl/Tkでくぐってみた。
これは何か良さげだな。これがあるのは知らなかったな…
いまDLしているところだが、おれがいま研究しているコンパイラでパクれそうなところがあるかもしれんから調べてみる。
これを改良して日本人向けの高級言語につくりなおすというひらめきが沸いてきたところだ。
HSPを超えそうな人気言語がこれでつくれそうかどうか、ちょっと研究してみるぜ。
これは知らなかったな…
>>811よ、価値ありそうな情報をありがとうよ。
0816デフォルトの名無しさんNGNG
>814
うわあ、一緒に仕事したくないタイプ。
規約も慣習も無視して自分勝手に突っ走るタイプだろ。
0817816NGNG
やべっ、沢村にレスしちゃった
0818デフォルトの名無しさんNGNG
>>812
いや、6月20日までにGIF使いたい奴にとっては価値がある。
0819名無し@沢村NGNG
>>818
すると6月20日までは、おれは日本一の人気者になれるかな?
蓮池さん以上の人気者に…
0820名無し@沢村NGNG
>>811
Tcl/Tk、DLしたが、何やこれわぁ!?スクリプトやないか?
実行ファイル作成できんのか?HSP以下か?ゴミソフト!!!
0821デフォルトの名無しさんNGNG
>>819
無圧縮GIFよりPNG使う人の方が多いよ
0822デフォルトの名無しさんNGNG
>820
感慨深いレスだなあ。
0823デフォルトの名無しさんNGNG
>820
>Tcl/Tk、DLしたが、何やこれわぁ!?スクリプトやないか?

確かに画像処理には速度が求められる。
が、好奇心が無いと長続きしない。
0824デフォルトの名無しさんNGNG
>>820
> Tcl/Tk、DLしたが、何やこれわぁ!?スクリプトやないか?

どうしてダウンロードする前に気が付かないのだ??????
0825デフォルトの名無しさんNGNG
複数枚のエロ画像を一枚の画像に結合させたいのですが、
いまいちやり方が分りません。JPGのファイル形式だけでも
理解できたらなんとかなりそうなものですが、それに関する
資料も見当たらないので途方に暮れています。
どなたかファイル形式に関してよいサイトを知りませんか?
0826デフォルトの名無しさんNGNG
>>825
koretukaeba-?
http://www.graphicsmagick.org/
0827デフォルトの名無しさんNGNG
wowsiteだかそんなページ
0828デフォルトの名無しさんNGNG
>>826
ありがとうございます。imagemagickというのもあるようで
よく分りませんが試してみます。Gentooにはperlmagickという
インターフェイスも用意してありました;-)
0829名無し@沢村NGNG
Starpack
Tcl/Tkでつくったスクリプトを実行ファイルに変換するツールだな。
が、わし英文読めんけん、このページのどっからDLしていいかわからんのよ。
このページの何行目の何という文字をクリックするとDLできるか、教えて〜♪

http://www.interq.or.jp/japan/s-imai/tcltk/tclkit.html
0830デフォルトの名無しさんNGNG
沢村氏ねよ
0831デフォルトの名無しさんNGNG
>>825
プログラムを組む必要すらありませんでした。
$montage -tile 2 -mode Concatenate * all.jpg
これだけです。素晴らしいです。
0832デフォルトの名無しさんNGNG
沢村は831を見習え。
0833名無し@沢村NGNG
おれのGIF変換ソフトだが、某GIFアニメソフトで開こうとしたら、開けんかった。
おまいらよ、おれのGIF変換ソフトに欠陥があるのか、そのGIFアニメソフトに欠陥があるのか、どっちだと思う?
おれは、そのGIFアニメソフトに欠陥があるほうだ思うな。
というのは、おれのGIF変換ソフトでつくったGIFはちゃんとIEで開けるから、欠陥はないはずなのよ。
GIFアニメソフトも自前でつくるしかないかな…?
0834名無し@沢村NGNG
そのGIFアニメソフトは、画像も表示できん低レベルなものなんで、やはりそのGIFアニメソフトのイメージ読み込みルーチンに欠陥があるんだろうな…。
それにしてもGIFアニメのほうは、ユニシスの特許に触れずにつくることができる割にはフリーのものが少ないな…
vecotorでくぐったらまともなフリーは2つ出てきたが、ひとつはVBのランタイムが必要なもので、もうひとつはその画像も表示できん低レベルなものだった。
こりゃ、ホームページビルダーに付属しているような感じのGIFアニメソフトつくっというたら、ユニシスの特許が切れた後にも、人気者になれるかもな…?新しい発見だ!!
0835デフォルトの名無しさんNGNG
あんたなにさまのつもり?
0836デフォルトの名無しさんNGNG
バカ殿
0837デフォルトの名無しさんNGNG
やべっ、沢村にレスしちゃった
0838デフォルトの名無しさんNGNG
名前とメル欄まちがった・・・_| ̄|○
0839デフォルトの名無しさんNGNG
せんせい、しつもんです。
えいごがよめないさわむらくんが、なぜてんさいなんでしょうか?
ぼくはえいごがすこしよめるのですが、ぼくはさわむらくんよりあたまがわるいのでしょうか?
0840デフォルトの名無しさんNGNG
ttp://www.geocities.co.jp/Playtown-Spade/6515/geobook.html

やっぱり名無し@沢村さんはム板のアイドルですね
0841デフォルトの名無しさんNGNG
動的輪郭を使って物体の輪郭抽出をしたいのですが
プログラムをどうやって書けばいいかさっぱり分かりません
何か参考になる本とかないですか?
0842デフォルトの名無しさんNGNG
創作プログラミングの街
0843デフォルトの名無しさんNGNG
>>841
コーディング方法がわからないってこと?
それともアルゴリズムがわからないってこと?
0844名無し@沢村NGNG
おまいらよ、
おれは>>833で、
おれのGIF変換ソフトだが、某GIFアニメソフトで開こうとしたら、開けんかった。
おまいらよ、おれのGIF変換ソフトに欠陥があるのか、そのGIFアニメソフトに欠陥があるのか、どっちだと思う?
と聞いたが、
おれのGIF変換ソフトに欠陥があったほうだったよ。
というのはちょっと手直ししたら、そのGIFアニメソフトで開けるようになったからよ。
まあ、ちょっとしたミステイクだったのよ。
猿も木から落ちる、孔母も筆の誤りというやつよ。わかるかな?
0845デフォルトの名無しさんNGNG
一番の欠陥は沢村自身な。覚えとけ。

>孔母も筆の誤り
弘法も筆の誤り。
0846デフォルトの名無しさんNGNG
ラスタデータで描かれた曲線をベクタデータに変換する
Adobe Streamlineでやっているようなアルゴリズムについて、
資料があったら教えてください。
0847デフォルトの名無しさんNGNG
> 846、841他
http://www.utp.or.jp/booksearch/cgi/jump.cgi?id=061119

ここでぐだぐだいってないで、↑を購入シル。ハイエンドCPUを
買うのを我慢すれば、これぐらい買えるだろう。
0848デフォルトの名無しさんNGNG
>>847
takeeeeeeeeeeee!
0849名無し@沢村NGNG
おみゃーらよ、おれの「「Visual E++」」がバージョンアップしたから見ちみれ。
実はおみゃーらよ、今度のバージョンから密かに裏機能をつけているのだ。
どんな裏機能だと思う?ふふふ…教えん!自分じ探せ、おみゃーらよ!

http://hp.vector.co.jp/authors/VA015412/
0850デフォルトの名無しさんNGNG
>>847
漏れ東大生だからそのうち図書館で見ようっと。
0851デフォルトの名無しさんNGNG
>>847
なんか漏れ怖ぇよ。こんなの一般人が購入していいのか?
黒服の男たちにマークされたりしない?
「そして851は謎の失踪を遂げた」とかシャレになんねー。
0852デフォルトの名無しさんNGNG
>>851
だったら、全くの興味だけで丸善の本を買いまくっている俺は、かなりの要注意人物ってことか。
0853デフォルトの名無しさんNGNG
>>847
宣伝乙!
いや、でもこういう本今までなかったからいいかも。
0854デフォルトの名無しさんNGNG
1850円とまちがえた
0855デフォルトの名無しさんNGNG
>847
1850ページか
前が750ページで25000円だからコストパフォーマンスは良くなっているみたいだけど
ここ10年あまりで1000ページ分以上アルゴリズムが増えたのか
0856デフォルトの名無しさんNGNG
> 851
でかい本屋いくと、医者や、建築家がこの類いの本のかご一杯買ってるのと同じく、
 グラフィックプログラマーとして食ってるものが普通にこれを買っても
おかしくない。
 ただ、これを買って成果を出しても、薄給はかわらず仕事だけが増えていく
のがとてもつらい。

0857名無し@沢村NGNG
おみゃーらよ、おれは昨日謎をかけたろ?
「Visual E++」に裏機能をつけたってな…わかるかな?
おみゃーらよ、それはマシン語とアセンブリ言語のハイブリッド化だったのよ。
まあ、アセンブリ言語のほうは、まだcall、ret、jmp、intの4つにしか対応してないけどな…
これから日々少しずつハイブリッド化を進行させる予定よ。
おみゃーらよ、このプロジェクトが完成した暁には、マシン語だけでも書け、アセンブリ言語だけでも書け、
またマシン語とアセンブリ言語をどんなふうに組み合わせても書ける、前代未聞の恐るべきプログラミングソフトができあがるぞ!!
自分じダウンロードしちみれ?おみゃーらよ?

http://hp.vector.co.jp/authors/VA015412/
0858デフォルトの名無しさんNGNG
PhotoShopのフィルムグレインみたいなものってどうやって作ればいいでしょうか。
0859名無し@沢村NGNG
突然だが、おみゃーらよ、おれはもうtcl/tkについて完璧にわかったよ。
というのは、みんなから嫌われながらもム板で質疑応答を繰り返して、完璧にわかったという次第よ。自分じわかるかな?
tcl/tkはGUIが簡単につくれるし便利だよ。おみゃーらよ、おれはちょっとtcl/tkでフリーソフトでもつくってみるよ。
楽しみに自分じ待ってろよ、おみゃーらよ♪
0860デフォルトの名無しさんNGNG
今JPEGを解析して、画像サイズ等の情報を取り出そうしています。
JPEGの情報はマーカーによって区切られていて、そのフィールドサイズは
マーカーのすぐ後ろに必ず書いてあると思っていたのですが、
http://siisise.net/jpeg.html
↑のサイトには、
「可変長のマーカのサイズは、普通、マーカのすぐ後ろに
書かれている。書かれていないものもある。」
と書かれていまいした。
マーカーのすぐ後ろにフィールドサイズが書かれていない
ものがあるということは、目的のマーカーを探す処理は、
�@マーカーのフィールドサイズを利用して、次のマーカーの位置を算出
�Aそのマーカーのフィールドサイズを利用して、次のマーカーの位置を算出
         ・
         ・
         ・

という単純な処理の繰り返しのみでは、フィールドサイズが書かれていない
マーカーがあった場合に、次のマーカー位置算出で失敗してしまうので、
駄目なのでしょうか?

0861名無し@沢村NGNG
>>860
単純な処理の繰り返しのみでは駄目だ。
工夫が必要だ。
0862デフォルトの名無しさんNGNG
>>860
漏れもJPEGを完璧に知っているわけではないけど
漏れが経験した限り、サイズが書かれていないマーカは
 RSTn - 0xd0〜0xd7 (Restart Interval)
 SOI - 0xd8 (Start of Image)
 EOI - 0xd9 (End of Image)
のみ。SOI はファイルの一番最初に出てくるマーカだし
EOI はファイルの一番最後に出てくるもの。無視すりゃいいよね。

RSTn はきちんと展開処理しないならばファイルの途中にいきなり
出てくるような印象を受けるけど、画像サイズとかが欲しいだけならば
RSTn が出てくるよりも前に必要な情報は受け取れているはず。

そうでなくても、JPEG の scan の中には無意味な 0xff は
出てこないわけなんだから、単純に次々に 0xff を探していけば
必ず何らかのマーカが見つかる。
JPEG は小難しい技使ってるわりには、かなり扱いやすいファイルだ。
0863860NGNG
>>862
情報サンクス!
大変参考になりました!
JPEGは扱いにくいファイルだと思っていましたが、
そうでもないみたいですね。
0864デフォルトの名無しさんNGNG
佐世保首切り事件の加害者宅の郵便受けがモザイク入り写真で載ってるんだけど、
誰かこのモザイク外せない?

http://www.tanteifile.com/diary/index2.html
0865デフォルトの名無しさんNGNG
>>864
ぼかしは外せないけど、外さなくても分かる文字は多いな。

あと、スレ違い。
0866デフォルトの名無しさんNGNG
モザイクはずしてどうするのか考えたらとても
協力する気になれない。
0867デフォルトの名無しさんNGNG
win で、画面を Print Screen キーみたいに保存するのに、GetDIBits() を
使ったら、BI_BITFIELDS で出てきた。よく分からないのでMSDNを調べていたら、
biBitCount = 16 なんてのがある。
メモリとか HD とか小さい時代には、こういうのが流行ったのでしょうか。
アクセサリの「ペイント」にも、こんなの、保存形式にない。
0868デフォルトの名無しさんNGNG
まるで今は16bppのビットマップが存在しちゃいけないかのような言い回しだな。
0869デフォルトの名無しさんNGNG
フォトショップとかで使える16bitから―ってどうやってあつかえばいいですか?
0870デフォルトの名無しさんNGNG
>>869
扱いたいように扱え。
0871867NGNG
>>868
存在しちゃいけないとは、毛頭いうつもりはありませんが、テストにデータを
入手したくて、ペイントで保存し直せばできるかと思ったら、できない。
MSDN には、16 bit を説明していないのもある。鬼っ子みたいな気がしたもん
で、聞きました。
0872デフォルトの名無しさんNGNG
>>867
GetDIBits() が今でも 16 bit で返すのか、API スレで聞いた方がいいんじゃない?
0873デフォルトの名無しさんNGNG
>>871
とりあえずネット上で参照可能なMSDNにはbiBitCount = 16は明記されてるが。
XPでも画面の色数として16ビットが選択可能な以上ないほうがおかしいだろ。
0874デフォルトの名無しさんNGNG
>>867
流行りはどうだか知らんが、画面の DC から GetDIBits して 16bpp の絵が取れたんなら、
それは画面の色数が 16bit に設定されてるからでしょう。
漏れは大抵 32bit にしてるけど、画面の色数 16bit にするのって流行ってるの?
0875デフォルトの名無しさんNGNG
笑える奴がいるな
0876867NGNG
>>874
サンプルの savebmp.c を下敷きにしていて、biBitCount = 0 で最初の
GetDIBits() を出しているのですが、これが 32 bits で返って来るのは、
画面設定の反映なんですね。
表示している絵によって変わるのかと思っていたところでした。で、全体
どんなものが返るのかを調べていました。(この後、色数が少ないなら、
サイズの小さいファイルにしたいなと)
どうもありがとうございました。
0877867NGNG
ヒマそうなので、ヨタ話を。
1996年頃の資料に、1,4,8,24 bit color が valid で、16 bit は将来サポートって
説明があった。biCompression も、BI_RGB, BI_RLE4, BI_RLE8 とあって、
BI_BITFIELDS だから、追加されたと予想。後、JPEG も。
ということは、mspaint.exe は、対応していないということかと。
しかし、gif, jpeg は、入っている。気まぐれですかね。
0878デフォルトの名無しさんNGNG
libpngを使って特定の1pixelの色情報を取得したいんですがどうすればいいんでしょう?

libpng.txtの日本語訳とかないのかなぁ
0879デフォルトの名無しさんNGNG
>>878
png_read_image でまとめて読むか、
png_read_row/png_read_rows で行単位に読んで
ほしい場所のデータを参照する。
カラータイプがパレットだったら png_get_PLTE でパレットデータを読んどく。
後はガンマとか他のチャンクで補正するかどうかだね。
0880デフォルトの名無しさんNGNG
>>879
ありがとう
0881デフォルトの名無しさんNGNG
ビットマップを直接、バイナリでファイルに書き出して作りたいのですが、質問があります

実際のビットマップファイルをバイナリエディタで開いてみると、ヘッダ部分の解析はできたのですが、
画素の部分の解析ができません。
BGRの順番で左下の画素から順に書かれていることはわかりました。
でも、その画像の横幅分の画素まで到達すると何バイトか0が入っている部分があります。
この部分は画像によって大きさが違うことがわかりました。
この画像によって違う大きさを持つ0の数はどのような規則で決められているのでしょうか?
0882デフォルトの名無しさんNGNG
>>881
解析なんぞせんでもおまいさんが知りたい程度の情報なら「プログラミングWindows(下)」
に分かりやすく解説されてる。

「行のサイズが4バイトの倍数になるように、行の末尾が0でパディングされている場合がある」
0883デフォルトの名無しさんNGNG
>>881
GDI+ 使うとこんなに簡単。

Gdiplus::Bitmap* bitmap = new Gdiplus::Bitmap(100,100);
Gdiplus::Graphics* gr = Gdiplus::Graphics::FromImage(bitmap);
// gr に何か描く
delete gr;
CLSID pngClsid;
Gdiplus::GetEncoderClsid(L"image/bmp", &pngClsid);
bitmap->Save(L"test.bmp", &pngClsid, NULL);
delete bitmap;

jpeg でも png でも一箇所変えるだけ。
0884デフォルトの名無しさんNGNG
>>882
>>883
ありがとうございます。
たった今、自分で気づいて自己解決た旨を伝えようと思ったら、早速レスがついてました。
どうもありがとうございました。
お騒がせしました。
0885名無し@沢村NGNG
>>881
おみゃ〜よ、そりは幼稚園の問題だが、教えちやるよ。おみゃ〜よ。
おみゃ〜よ、ビットマップ画像には縦幅と横幅があるのよ。まあ縦幅のことは高さともいうわな。
で横幅よ。おみゃ〜よ。
横幅は4の倍数なのよ。
でもあるビットマップ画像は縦幅が21ピクセルしかなかった。でも4の倍数なのよ。
おみゃ〜よ、4の倍数は24だろもん?
だから21ピクセルしかなかったら、3ピクセル足りなかろもん?
だから3バイト分、0で埋められるのよ。おみゃ〜よ。
そんんあことよりおりはいまPE実行形式のリソースセクションの詳細が知りたいのよ。
もちろんわがプログラミングソフト「Visual E++」でつくるソフトにリソースをサポートするためなのよ。わかる?
0886デフォルトの名無しさんNGNG
>>885
やっぱこれからの時代E言語っすよね
機械語ができれば何でもできるし
0887名無し@沢村NGNG
おみゃ〜らよ、質問があるんだが、人の顔の正面から見た画像から、
人の顔の横から見た画像を生々したいんだが、どうすりゃいいの?
また人の顔の画像から人の尻の画像を生々するには?
0888デフォルトの名無しさんNGNG
なまなま?
0889デフォルトの名無しさんNGNG
漏れの自慢のしゃくれ顎が、正面から見ただけで簡単に想像されてたまるかよ。クソッ
0890デフォルトの名無しさんNGNG
>>887
よーわからんけど六角大王のソースを読んで
研究してみは・・・。
0891デフォルトの名無しさんNGNG
やべえまた沢村にレスしてしまった・・・
0892デフォルトの名無しさんNGNG
フリーで使える画像処理ライブラリを探しています
画像取り込みまではこちらでやるとして
エッジ検出、パターンマッチング、ブロブ処理、フィルタリング
あたりが出来れば良いです
0893デフォルトの名無しさんNGNG
開発環境くらい書けぼんくら
0894デフォルトの名無しさんNGNG
>>893
すいません、LinuxかWindowsでお願いします
0895892NGNG
>>893
開発環境を書き忘れていました
VC6,7,gcc,でリンクできればどんなライブラリでも
構いません。ソースがあればそれに越したことはないですけど
グレースケールに対応していれば良いです
0896892NGNG
画像処理と書いてあったので書き込んでみましたが
過去発言読んでみると、お門違いな気がしてきました
0897デフォルトの名無しさんNGNG
よーわからんけどGraphicsMagickはなんでダメなの?
0898デフォルトの名無しさんNGNG
GIMPのを使うとかな。
0899デフォルトの名無しさんNGNG
>>895
OpenCVは?
0900デフォルトの名無しさんNGNG
ippでDIB扱う部分は自分で作る必要あるの?
0901デフォルトの名無しさんNGNG
画像処理だけどさ、基本的なフレームワーク何使ってる?
GEGLとかTEOとかImlibとかImageMagickとかGDとか腐るほどあるみだいだけどさ。
0902デフォルトの名無しさんNGNG
画像処理業界って求人少なくないですか?
転職を考えているんですが
募集してる件数がかなり少ないように思えるのですが。
0903デフォルトの名無しさんNGNG
>>902
画像処理にもいろいろあるが
0904デフォルトの名無しさんNGNG
>>902
医療機器の開発とか、大手写真メーカーや電機メーカーがいつも募集しているぞ。
ただし、「いい人がいれば採りたい。人がいないなら欠員でも仕方ない」というタイプの
求人だから、常時募集していても簡単には入れないけどね。
0905デフォルトの名無しさんNGNG
回転の話題がありましたがアンチエイリアスを適応する回転のコードとか
ありませんか。
0906デフォルトの名無しさんNGNG
>>902
ロボット・車両関係の画像認識関連も大いに人不足。
ただし、やぱーり採用は >>904 だが。
0907904NGNG
>>902
あと、色んな工場向けの検査装置の需要も結構ある。地味な分野だけど、日本の製造業は
人件費で中国に勝てるわけないから省力化は必須で、人間の目視検査でやっていたものを
コンピュータ化するというのは、それなりに需要があるよ。工場が生産するものそれぞれに
応じて、画像処理のカスタマイズが必要だから、時として、その場しのぎのヤッツケ仕事に
なってしまうことも多いけどね。

今後の需要で期待されているのは、やっぱりセキュリティ関連。ステレオカメラとか
動画像から特徴抽出とか、いろんな案件がある。工場の検査機器と同じで、同じものを
画像処理装置を量産するんじゃなくて、たいていは顧客の要望に即したカスタマイズが
必要になるから、これまた仕事はいろいろある。テーマパークなんかで、お客さんたちの
流れを計測してあれこれ案内を流す装置みたいな、目立たないものが多いけどね。

残念ながら、この手の仕事は、大企業なら研究所で細々とやっていて転職者の募集は
あまりやってない。世間一般には全く名前を知られていない中小企業(しばしば大企業
から独立した人が作った会社)が、大企業から仕事を請け負っている場合が多いし、
中途採用をやっているのもそういうところだったりする。

大企業にこだわるなら、家電メーカーやカメラメーカーのデジカメの開発部門でもあたって
みては? そういえば、サムソン横浜研究所がデジカメの技術者を求めていたなぁ
コダックも、デジカメの開発は日本に集中させると言っていた。
0908デフォルトの名無しさんNGNG
これ以上はマ板だな
0909デフォルトの名無しさんNGNG
「新編 画像解析ハンドブック」ってどこで買えるの?
どこにも売ってないよ…
0910デフォルトの名無しさんNGNG
http://www.utp.or.jp/index.html
版元で買える。

と思ったら、まだ未刊らしいよ。
0911デフォルトの名無しさんNGNG
おまいら、PCカメラの映像から、物体の移動を検知する手法を教えてください。

発言元
http://pc5.2ch.net/test/read.cgi/tech/1088022524/272-274
0912デフォルトの名無しさんNGNG
このへんとか
http://www.malib.net/api/ja/node44.html
0913デフォルトの名無しさんNGNG
なるほと、フレームの前後をマスクして割り出すのですね
とてもよくわかりました。ありがとうございます
0914デフォルトの名無しさんNGNG
GTK+ とか GDK とかの説明を読んでいて、急に思い出したのですが、
昔、GKS とかの graphics interface ?がありましたが、今、どう
なっているか、なになにに生きているとか、無くなったとか、ご存知の
方いらしゃいませんか。(1985 年頃、Nova Graphics International,
Austin, Texas でやっていたと google では出てくるのみ)
0915デフォルトの名無しさんNGNG
顕微鏡などの被写界深度の浅い画像の
全焦点画像の合成って、どうやってやるのでしょうか?

顕微鏡でピントをずらしながら複数フレームの画像をとりこんで、
全フレームの中で周辺8近傍との差分の絶対値の和がいちばん大きい画素を、
一枚のフレームに集めこんだら、できるだろうと思ってやってみました。

まぁまぁ予想した感じにはなったのだけど、
キーエンスとかオムロンとかの合成ソフトの画像ほど、
きれいに合成されませんでした。

やっぱり、こんな単純なアルゴリズムでは、だめなのでしょうか。
空間領域ではなくて、周波数領域とかで処理したりするんでしょうか?
0916デフォルトの名無しさんNGNG
>915
>全フレームの中で周辺8近傍との差分の絶対値の和がいちばん大きい画素を、

もうちょっと頭を使えw
0917デフォルトの名無しさんNGNG
>>916
915ではないが、もうちょっと頭を使ったアルゴリズムキボンヌ
0918デフォルトの名無しさんNGNG
各画像のベンチマークとかあったらおせーて。
あと解凍アルゴリズムも。
0919デフォルトの名無しさんNGNG
2値画像のラベリングを再帰をつかってやりたいのですが
わかりません。どなたかソースもってませんか!?
教えていただけるとうれしいです
0920デフォルトの名無しさんNGNG
>>919
なんで再帰限定なの?宿題?
0921716NGNG
リアルタイム処理したいので高速なのが必要なのです。あとちょっと時間ないので特殊な
データ構造とかいらない簡単なものだと再帰がいいのかなと。
もちろん論文よめば複雑なアルゴリズムあるんでしょうけど・・・。
0922デフォルトの名無しさんNGNG
↑919です
0923デフォルトの名無しさんNGNG
>> 921
image MLの1998年8月くらいにラベリングに関するQAがあって、ソースもでていた
ので探してみ
0924名無しさん@そうだ選挙に行こうNGNG
>>921
「再帰」がいいのなら、トランジスタ技術2003年2月号P.201にあります。
"USB接続のパソコン用カメラで物体認識と動き検出"という章。

紹介したはいいけど、再帰って、いまいち気持ち悪いんですよねー。
リアルタイムでキャプチャということですから、
そんなに画像サイズがでかくないんでしょうけど、
再帰コールによるスタックオーバーフローにご注意です。

ついでに再帰を使うアルゴリズムは激遅ですよ、いいのかなー。
0925名無しさん@そうだ選挙に行こうNGNG
Floydが1976年に書いたError Diffusionの論文
"An adaptive algorithm for spatial grayscale", Proc. of the S.I.D, vol17, no.2, pp.75-77
がPDFで見れるとこ探してるんですけどどこかにないでしょうか?
0926名無しさん@そうだ選挙に行こうNGNG
末尾再帰になるならコンパイラによる最適化もじゅうぶん望めて、
スタックも食わないが。
0927デフォルトの名無しさんNGNG
末尾再帰ってなんですか?
0928デフォルトの名無しさんNGNG
927 です、web検索したら、わかりました。
0929デフォルトの名無しさんNGNG
>>925
それ俺も探してたけど結局見つかんなかったなぁ.
極論だけどもし参考文献に引く程度なら読まなくても大丈夫なんじゃない?w
今でもまだ読んでみたいし,見つかったら教えるよ.
0930デフォルトの名無しさんNGNG
RGB表色系からCIE L*a*b*表色系への変換方法ってか
RGB→XYZの変換行列が色々あってよくわからないのですが,
RGBからフォトショのLabを得るためにはどうやったらいいのですか?
教えていただけると助かります.
0931デフォルトの名無しさんNGNG
面積平均法って、英語で何て言うんですか?
日本語の文献が少ないようで、海外の文献を
調べようと、ぐぐりたくても、名称が分かりません
0932デフォルトの名無しさんNGNG
> 931
> 面積平均法って、英語で何て言うんですか?

area averaging method
0933デフォルトの名無しさんNGNG
>>915
こんなのもあるけど。
ttp://www.vector.co.jp/soft/win95/edu/se113943.html
何とかってソフトほど綺麗には出来ないかもしれないけど、フリーだしソース付きだから、見てみたら?
0934デフォルトの名無しさんNGNG
ベースラインJPEGの画像縦横サイズを取得したい場合、
まずマーカ「FFC0」を探すことになります。しかし実際に
JPEGファイルをバイナリエディタで開いてみたところ、
JPEGファイルによっては、マーカ「FFC0」が2つ存在する
ことが判明しました。しかも、最初に見つかった「FFC0」
のところに書かれている画像縦横サイズは間違った値で、
2回目に見つかった「FFC0」のところに書かれている
画像縦横サイズは正しい値でした。
正しい画像縦横サイズのみ取得するには、
どうしたらよいのでしょうか?

0935デフォルトの名無しさんNGNG
後にくるもので上書きすればいい
0936デフォルトの名無しさんNGNG
>>935
確かにそのようにすれば、2回目に見つかった「FFC0」の値が
取得できますが、後に見つかった「FFC0」の方が必ず正しい値
であるかは分からないので、ちょっと不安です。
0937デフォルトの名無しさんNGNG
>>934
こんなアルゴリズムでどうよ?
これは厳密な BaselineJPEG のデコードの考え方のはずなんだ。
これがダメなら、よければ漏れにも問題の JPEG ファイルをくれるか。

unsigned short get_marker () {
 return (0xff で始まる 2 バイトをストリームから探し、読み、返す)
}
void get_jpeg_image_size () {
 unsigned short marker;
 do {
  marker = get_marker();
  switch (marker) {
   case 0xffd8: // start of image
    break; // 何もせずに次のマーカを処理する。
   case 0xffda: // start of scan
    // これより前に画像の大きさは得られているはず。
    break;
   case 0xffc0: // start of frame 0
    // 本物の start of image 0 のはず。
    process_start_of_frame_0();
    break;
   default:
    // セグメント長を得てストリームをスキップ
    // もしくは、無視してはいけないはずのマーカならば
    // エラーを報告してループを抜ける等。。。
  }
 } while (marker != 0xffda); // start of scan でループを抜ける
}
0938デフォルトの名無しさんNGNG
>>937
うーむ、そのアルゴリズムでも駄目かも。
問題のJPEGは、「Windows XP.jpg」で
OSインストール後、↓のフォルダに入ってます。
「C:\WINDOWS\Web\Wallpaper」
0939デフォルトの名無しさんNGNG
漏れ XP 持ってNEEEEEEeeeeeeeee
ちょうだいヽ(;´Д`)ノちょーだい
0940デフォルトの名無しさんNGNG
サブピクセルレンダリングとアンチエイリアスの比較やってみたんですが、
ピクセル補完に二次補完を使った場合は明らかに前者のほうが優れていますが、
三次補完になるとほとんど差がありません。

二次のサブピクセルレンダリングと三次のアンチエイリアスだと、
後者のほうが明らかに画質が高く計算量も少ないのに、なぜAdobeReaderとか
XPでは二次のサブピクセルレンダリングが使われてるんでしょうか?
0941デフォルトの名無しさんNGNG
>>939
はい。

ttp://age.tubo.80.kg/age01/img-box/img20040719122143.jpg
0942デフォルトの名無しさんNGNG
>>941
サンクスコ。
つーか見てみたけど、20バイト目から始まる「セグメントApplication13」を
指示通り 2280 バイトスキップして、さらに 2302 バイト目から始まる
「セグメントApplication2」も指示通り 3160 バイトスキップして、
さらに 5464 バイト目からの「セグメントApplication14」も指示通りに
14 バイトスキップすればいいんだよ。
つまり >937 のアルゴリズムでいいじゃん。
「セグメントApplication-N」なんて、ほとんど無視して大丈夫。
0943デフォルトの名無しさんNGNG
ちなみに >937 のダメなところは start of frame 0 しか処理していない事。
web上にはプログレッシブJPEG、つまり start of frame 2 を持つものも多くあるよね。
そいつらも処理できた方が cool だ。
もっとも、セグメントの構造はどちらも全く同じだから、
画像サイズを得るには何ら難しい事は考えなくて良いけど。
0944デフォルトの名無しさんNGNG
>>940
漏れの予想だけど、サブピクセルレンダリングの方が
・メモリは必要だけどアルゴリズムが簡単
・細い線をレンダリングできる
からじゃない?間違ってたらスマン
0945デフォルトの名無しさんNGNG
>>933

915です。どうも、ポインタをありがとうございます。
Delphiのソースですね、さっそくDelphi6 Personalをインストールせねば。
(でも *.pas だけテキストエディタで読めばいいのか)

いろいろ資料を探しておりました....
フォトロン社&&産総研の共同研究にブチあたりました。
それを読むと、あんまり頭つかうアルゴリズムではないような気がします。
(NTSCレートで実現しようとしているので、そうなのかもしれませんが)
0946デフォルトの名無しさんNGNG
>>942
>>943

934です。
大変参考になりました!
ちゃんとセグメント長を得てストリームをスキップ すれば
問題ないと言うことですね。
どうもありがとうございます。
0947902NGNG
>>904,906,907
レスサンクス。

この前某大手精密メーカーに面接してきますた。
内定したけど面接中に仕事内容聞いて
実は萎えてたんで断りました。
アカデミックな仕事したかったんだけど
実際の仕事内容はつまらなそうでね。。。
今の会社でやってることの方がずっと面白いとオモタよ。
今の会社でがんばりまふ。
0948デフォルトの名無しさんNGNG
ぐぐっても見当たらないのでたぶん間違えてるんだと思いますが、
移動平均化でぼかした画像を、元の画像から引くと(レンジは補正)、
2次元フーリエを使ったハイパス画像とよく似ていますが、
それをハイパス画像と言わないのですか。

カット周波数をあげればエッジがきれいに出てきますし、
フーリエ使ったときにでてしまう縞々もなく、非常にきれいなんですが。
0949デフォルトの名無しさんNGNG
>>948
単純にハイパスフィルタをかけたものと同じになってるだけじゃない?
移動平均から元画像を引くインパルス応答がハイパスフィルタ
になっていない?
ちなみに、境界条件が違うので二次元FFTとは数学的には違うでしょう。
0950デフォルトの名無しさんNGNG
判別分析法のソースない?
0951デフォルトの名無しさんNGNG
>>948
>移動平均化でぼかした画像を、元の画像から引く
その画像をフーリエ変換掛けて見ると分かるが、長周期成分は消えてないはず。
その意味では、「フーリエ変換によるハイパス」とはまったく違う。
ただし、位置に関して微分した事になるので、加速度的な変化が強調されている。
したがって「フーリエ変換によらないハイパス」と言って良い。
0952デフォルトの名無しさんNGNG
>>949
>>951
レスどうも。なるほど了解。
移動平均は、短周期をつぶしてるけども長周期成分を抽出してるわけじゃないですね。
ところで、人間の視覚系もエッジ抽出とか、長周期成分の抽出とか
をやってると思うのですが、どういう処理方式のフィルタに相当するものなんですか。
0953デフォルトの名無しさんNGNG
>>952
マッハ効果で調べてみては?
基本的にはバンドパスフィルタなんだけど、関数表現は忘れた。
0954デフォルトの名無しさんNGNG
フーリエ変換には、数学的な利便性以上のものは無いよ。

以下は個人的な考えだけど、JPEGが巧いのは、
色相をまびいて輝度を重視する事と、フーリエ変換による符号化を組み合わせたこと。
後者は純粋にデータ圧縮のための方便だから、
輝度重視で、移動平均からの差を取るのが感覚系に合うのではなかろうか。
移動平均を、バイキュービック補間とかでやるのもいいかも。
0955デフォルトの名無しさんNGNG
>>954
> 輝度重視で、移動平均からの差を取るのが感覚系に合うのではなかろうか。
これって、Haar-waveletによる処理に近いかな?
JPEG2000勉強始めたところなんで、なんとなくそう思っただけなんだけど。
0956954NGNG
書いたあとで先レスに気が付いた。
移動平均(あるいはバイリニア)とか、バイキュービック補間からの差を取れば、マッハ効果が出るね。
「個人的な」とイクスキューズしたけど、あんがい良い線いってたのかな。
0957954NGNG
>955
たしかにそうだね。
平均(補間?回帰?)の取り方に個性が出るのかな。
0958デフォルトの名無しさんNGNG
Delphi超初心者スレより誘導されてきました

ある画像(bmp)ファイルを入力し その画像の中から新円もしくは楕円に近い軌跡を描く線のみを抽出して
別画像ファイルとして 出力するということを考えているのですが
その画像ファイル内には他にも多くの直線部分や、塗りつぶし部分などが含まれているため
曲線部分のみの抽出方法をどうしたらいいのか悩んでおります。

http://www.eyescan.tv/images/me001.jpg

たとえばこのような画像を入力した場合ある程度のフィルタ処理をした後
データ-ベース上にある登録された個人との 照合をしある程度以上の適合率が出た場合は
OKサインを出すといった手法で考えております。
ファイルタ処理は完全に白黒レベルまで虹彩と書いてある目の外側にある放射線状に延びている多くの線は残した状態にまで
フィルタをかけデータベース上にある画像ファイルの一番外側の楕円軌道と入力画像の大外の楕円軌道が一致するよう
拡大縮小処理をした後にその2画像の適合率のようなものを出したいと考えています。

上記のような入力画像ファイルの中から曲線部分の抽出することを考えた場合どのような手法が考えられるでしょうか?
0959デフォルトの名無しさんNGNG
ぶっちゃけその画像の曲線部分ってどこよ。
0960デフォルトの名無しさんNGNG
ぶっちゃけ網膜パターン使った認証システムだろ。
0961デフォルトの名無しさんNGNG
>959
角膜(クロメ)の外側輪郭部分です

>960
そのとおりです。もしお詳しければいろいろ教えていただけたらと思います。
0962デフォルトの名無しさんNGNG
>>961
昔、TVでやってたな。
縦や横の一直線をバーコードのように読んだり成分を比べたり。
ぐぐれば出てくると思うぞ。
0963デフォルトの名無しさんNGNG
>>961
ちょっとまて。
パターン調べようとしてるのは網膜か? 虹彩じゃないのか?
0964デフォルトの名無しさんNGNG
>パターン抽出
これなんかどう?
ttp://homepage3.nifty.com/ishidate/vcpp6_g15/vcpp6_g15.htm
0965デフォルトの名無しさんNGNG
あと、同サイトの
../vcpp6_g8/vcpp6_g8.htm
も役立つかも。
0966デフォルトの名無しさんNGNG
>963
虹彩でやろうと思っております。

>964
ありがとうございます。とてもいい勉強になりそうです。
実際にはDelphiでやろうと考えているのですがDelphiで画像処理というのはあまり現実的ではないでしょうか?
もしDelphiで画像処理に関して詳しくかかれているサイト等御存知でしたら教えていただけないでしょうか?
0967デフォルトの名無しさんNGNG
>>966
言語にこだわっているようでは二流。
0968デフォルトの名無しさんNGNG
そういう指摘して喜んでるようでは三流
0969デフォルトの名無しさんNGNG
どっちも真だな
0970デフォルトの名無しさんNGNG
bmp画像の2値化ってどういった手法でやられているんですか?
R,G,Bの三要素数足してある閾値を越えていたら黒、それいかなら白で表示するといった形なのでしょうか?
0971デフォルトの名無しさんNGNG
>>970
>bmp画像の2値化ってどういった手法でやられているんですか?
どういう用途のために2値化するかによる

>R,G,Bの三要素数足してある閾値を越えていたら黒、それいかなら白で表示するといった形なのでしょうか?
人間が見るためのものなら
RGBを足すのはオススメしない>>12参照
単純な閾値処理だと、
あまり見れたものにはならないので、誤差拡散などが用いられる

まぁ、これも用途によるけどな
0972デフォルトの名無しさんNGNG
>>970
色々やり方がある。
細かく説明するより2値化でGoogleに聞けばよい
0973964NGNG
>>966
Delphiでも十分ですよ。
件のサイトはWIN32_SDKだけど、関数はいたってシンプル。
BitBlt()は、作画用のデータをVGAに転送する
GetPixel()は、座標の色を返す
SetPixel()は、座標に色をセットする
Delphiにも類似の関数があるはず。というか、SDKを叩けないかしらん?

余談だけど、今回のテーマでは、画像データをかなり頻繁に読み出すので、
件のサイトのやりかた(DDB)は速度的に不利です。
intポインタで直接アクセス出来るDIBでアクセスするのが一般的です。
Delphiでの具体策は知らないんだけど、たぶんDDBもDIBも扱えるんじゃないかな。

>>970
輝度と明度の違いですね。>>971の言うとおり。
輝度をリニアに変化させようとすると、彩度が変わるから注意。
輝度でモノクロにした後で規格化するならおっけー。
0974970NGNG
皆様のおかげで二値化できるようになりました。ありがとうございました。
二値化処理の後は輪郭抽出を考えているのですがこれは上下左右のピクセルと同じ色なら白、
一点でも違う色が回りにあれば黒とか言う感じの手法で可能でしょうか?
0975デフォルトの名無しさんNGNG
>>974
あのさー少しはさー調べてからさー人に聞けよー
0976デフォルトの名無しさんNGNG
それでもいいけど、そうすると線が二重になるよ
0977964NGNG
>>974
>上下左右のピクセルと同じ色なら白
白が出るようなら、その画像は、いわゆる「硬い」画像です。
かなりの情報が失われています。
ラティテュードか露出に問題が有ります。

硬い話はこのくらいにして、
あのサイトにはいろいろあるよー。
もちろん輪郭抽出も。
ttp://homepage3.nifty.com/ishidate/vcpp6_g13/vcpp6_g13.htm
0978デフォルトの名無しさんNGNG
>>977
>かなりの情報が失われています。
二値化してからの話だから・・・
0979デフォルトの名無しさんNGNG
背景色から見易い文字色の決定って話題が最近あった気がするのですが、よく思い出せません
どの辺だったでしょうか?
0980デフォルトの名無しさんNGNG
>>979
***すれ立てるまでもない質問はここで 第56刷***
http://pc5.2ch.net/test/read.cgi/tech/1088022524/278-279
かな・・・?

>278 名前:デフォルトの名無しさん[] 投稿日:04/07/01 09:49
>背景色(例えばFF,FF,FF)を指定するとその背景色で
>「見やすい」文字色をランダムに生成するアルゴリズムを教えてください。
>
>279 名前:デフォルトの名無しさん[sage] 投稿日:04/07/01 10:07
>>>278
>1) グレイスケールに変換 R*0.30 + G*0.59 + B*0.11
>2) R、G、Bの中で最も高かった値
>
>1) と 2) それぞれ背景色と文字色の差を求める
>どちらかの差が44%未満なら見辛い配色
0981980NGNG
勝手に次スレ建てた

画像処理 その3
http://pc5.2ch.net/test/read.cgi/tech/1090897159/
レス数が950を超えています。1000を超えると書き込みができなくなります。