- ベストアンサー
c言語 擬似カラー
このサイトで自分がしたいことのサンプルプログラムを見つけたんですけど http://www40.atwiki.jp/spellbound/pages/1782.html これはc言語じゃないですよね? c言語で擬似カラーを表すとどうするんですか??? c言語初心者でサンプルが必要です! お願いします。
- kn15
- お礼率33% (10/30)
- C・C++・C#
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> double h = 240.0 - ((240.0 / 255.0) * i); > ここの部分でどのような値が求められているのでしょうか?? 質問されたときの参考のサイトにある通りです. 輝度 i を「色相の範囲は赤(0)~青(240)まで」に割り当てています. > またcaseで場合わけされてる部分でどのような場合わけがわからないのですが 過去に類似の質問があるようです. これに対するが回答(6通りある~)が参考になるでしょう. http://okwave.jp/qa/q5905829.html
その他の回答 (1)
画像データの扱いを http://okwave.jp/qa/q7905359.html と同じ要領とすると、 http://ja.wikipedia.org/wiki/YUV http://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93 の通りにすると、おそらく下のような感じでしょう。 for (y = 0; y < ysize; y++) { for (x = 0; x < xsize; x++){ double r = image[y][x][0]; double g = image[y][x][1]; double b = image[y][x][2]; double i = 0.299 * r + 0.587 * g + 0.114 * b; double h = 240.0 - ((240.0 / 255.0) * i); int hi = floor(h / 60); double f = h / 60 - hi; int q = 255 * (1.0 - f); int t = 255 * (1.0 - (1.0 - f)); outimage[y][x][0] = outimage[y][x][1] = outimage[y][x][2] = 0; switch (hi) { case 0: outimage[y][x][0] = 255; outimage[y][x][1] = t; break; case 1: outimage[y][x][0] = q; outimage[y][x][1] = 255; break; case 2: outimage[y][x][1] = 255; outimage[y][x][2] = t; break; case 3: outimage[y][x][1] = q; outimage[y][x][2] = 255; break; case 4: outimage[y][x][0] = t; outimage[y][x][2] = 255; break; default: outimage[y][x][0] = 255; outimage[y][x][2] = q; } } }
関連するQ&A
- Rubyで書いているコードをPHPに書き換えたい
下記リンク先のRubyコードをPHPに書き換えたいのですが、どうすれば良いでしょうか? http://www40.atwiki.jp/spellbound/pages/2092.html http://www40.atwiki.jp/spellbound/pages/2093.html do | hoge |って、array_walkみたいなもの?
- 締切済み
- Ruby
- C言語学習について
大学4年生で研究室に配属されています。プログラムをする学科にいますが、あまりプログラムを作れません。 C言語の文法書を読んだり、サンプルプログラムを見たりしてはいます。独学はなかなか難しいです。 特にC言語でつくりたいものもありません。 C言語を使えるようになりたいのですがどうしたらいいでしょうか。C言語のいろいろな本を借りたり見たりはしています。実際に作った方が身につくとは思うのですが。サンプルプログラムを打つのも飽きてしまいます。 C++とかJAVAとかありますが、C言語しか使ったことがないのですが気になります。 近くにプログラムを教えてくれるような教室もありません。 助言お願いします。
- 締切済み
- C・C++・C#
- C言語にての疑似キーボード入力
C言語(C++・Win32API)にて、擬似的にキーボードの入力ができないか考察しております。 そのまま、キーボードで入力したことと同様な動きはできない物でしょうか?
- 締切済み
- C・C++・C#
- VB.NETからC++で作成したdllの連携
プログラム初心者です。 VB2010からC++で作成したdllへ配列を渡したいのですが、 動作するサンプルがありましたら教えてください。 単純な数値(int)であれば下記のページのサンプルコードをダウンロードして 動作可能でした。 http://www.geocities.jp/i_love_balard/myhome/vbdll.html しかし、以下のサンプルを作成したのですが、動作しませんでした。 http://www7.atwiki.jp/hisam/pages/51.html http://support.microsoft.com/kb/402577/ja http://support.microsoft.com/kb/410837/ja よろしくお願い致します。
- ベストアンサー
- Visual Basic
- C言語でプログラムを書いています。
C言語でプログラムを書いています。 その中で、サンプルデータの入ったファイルを読み込み、 その中身を配列を用いて行列として整理したいのですが、どのような命令が必要でしょうか。 ファイルの中身は、以下のようになっています。 1:0.111 2:0.222.....600:0.999 ・ ・ ・ 1:0.122 2:0.233.....600:0.998 「数字:」の部分は使用しないため、実際はコロン以下の数値で組みたいと考えています 詳しいサイトの紹介でもかまいませんので、よろしくお願いします
- ベストアンサー
- C・C++・C#
- C言語
プログラム言語のC言語について教えて下さい。 昔BASICを少し勉強しました。 それからプログラム言語から離れてましたがC言語を見て疑問があります。 BASICなら例えば最初に 10 ~ 20 GO TO~ みたいに上段、左詰めでプログラムを書いてましたがC言語って本を見るとやたら左側が膨らんだ?ような空白みたいな表記になってますよね?(説明下手でごめんなさい) この空白みたいな意味が分からないし、この空白?もスペースキーで打つのか分かりません。 C言語の表記の仕方について詳しい方、こんな初心者にでも簡単に分かるように説明して下さる方いたらよろしくお願いします。
- 締切済み
- Visual Basic
お礼
ありがとうございます!!! double h = 240.0 - ((240.0 / 255.0) * i); ここの部分でどのような値が求められているのでしょうか?? またcaseで場合わけされてる部分でどのような場合わけがわからないのですが 少し詳しく教えていただきたいのですがよろしいでしょうか?? 素人なものですみません。