• ベストアンサー

c言語 擬似カラー

このサイトで自分がしたいことのサンプルプログラムを見つけたんですけど http://www40.atwiki.jp/spellbound/pages/1782.html これはc言語じゃないですよね? c言語で擬似カラーを表すとどうするんですか??? c言語初心者でサンプルが必要です! お願いします。

  • kn15
  • お礼率33% (10/30)

質問者が選んだベストアンサー

  • ベストアンサー
noname#208507
noname#208507
回答No.2

> double h = 240.0 - ((240.0 / 255.0) * i); > ここの部分でどのような値が求められているのでしょうか?? 質問されたときの参考のサイトにある通りです. 輝度 i を「色相の範囲は赤(0)~青(240)まで」に割り当てています. > またcaseで場合わけされてる部分でどのような場合わけがわからないのですが 過去に類似の質問があるようです. これに対するが回答(6通りある~)が参考になるでしょう. http://okwave.jp/qa/q5905829.html

その他の回答 (1)

noname#208507
noname#208507
回答No.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;    }   }  }

kn15
質問者

お礼

ありがとうございます!!! double h = 240.0 - ((240.0 / 255.0) * i); ここの部分でどのような値が求められているのでしょうか?? またcaseで場合わけされてる部分でどのような場合わけがわからないのですが 少し詳しく教えていただきたいのですがよろしいでしょうか?? 素人なものですみません。

関連するQ&A

  • C#で疑似カラー

    C#のWindowsアプリケーションでボタン一つでグレースケール画像に疑似カラーを付けるプログラムが作りたいのですが、疑似カラーを付けるプログラムをどのように組めばいいのかわかりません。 ここのサイトに載ってある疑似カラーのルールにしたがって作ればいいって言われてるのですが。。。↓ http://imagingsolution.blog107.fc2.com/blog-entry-171.html どなたか教えていただけないでしょうか。

  • Rubyで書いているコードをPHPに書き換えたい

    下記リンク先のRubyコードをPHPに書き換えたいのですが、どうすれば良いでしょうか? http://www40.atwiki.jp/spellbound/pages/2092.html http://www40.atwiki.jp/spellbound/pages/2093.html do | hoge |って、array_walkみたいなもの?

  • C言語学習について

    大学4年生で研究室に配属されています。プログラムをする学科にいますが、あまりプログラムを作れません。 C言語の文法書を読んだり、サンプルプログラムを見たりしてはいます。独学はなかなか難しいです。 特にC言語でつくりたいものもありません。 C言語を使えるようになりたいのですがどうしたらいいでしょうか。C言語のいろいろな本を借りたり見たりはしています。実際に作った方が身につくとは思うのですが。サンプルプログラムを打つのも飽きてしまいます。 C++とかJAVAとかありますが、C言語しか使ったことがないのですが気になります。 近くにプログラムを教えてくれるような教室もありません。 助言お願いします。

  • C言語にての疑似キーボード入力

    C言語(C++・Win32API)にて、擬似的にキーボードの入力ができないか考察しております。 そのまま、キーボードで入力したことと同様な動きはできない物でしょうか?

  • 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 よろしくお願い致します。

  • 初心者のC言語

    私は、昨日からC言語を勉強し始めました。 大学の教授から2週間以内に50行程度のCプログラムを書けるようになって こいと指示を受けましたが、C言語をやったことが無いので、どのような勉強を すればいいのか分かりません。 初心者にも分かりやすいC言語のテキストやサイトを知っている方がいれば 教えてください。 お願いします。

  • C言語について

    C言語初心者です。 「かんたんC言語」という書籍で学習しております。 コマンドプロンプトでのプログラムの実行方法がよくわかりません。 教えて頂けないでしょうか?

  • C言語の悲しさ

    C言語を勉強しようとC言語の教材をこの間買ってきたのですが、 自分の予想していた?プログラムは、 灰色のウィンドウがでてきて、ボタンがあって、選べたりラジオボタンがあったりの、ソフトウェアみたいなのだったのですが、 実際、コマンドプロンプトという、すごく地味なものだったので、がっかりしました。 自分の予想のようなソフトウェアを作るのには、どういう言語が必要なんでしょうか? それとも、C言語にも、そのようなソフトウェアが作れるのでしょうか?

  • C言語でプログラムを書いています。

    C言語でプログラムを書いています。 その中で、サンプルデータの入ったファイルを読み込み、 その中身を配列を用いて行列として整理したいのですが、どのような命令が必要でしょうか。 ファイルの中身は、以下のようになっています。 1:0.111 2:0.222.....600:0.999 ・ ・ ・ 1:0.122 2:0.233.....600:0.998 「数字:」の部分は使用しないため、実際はコロン以下の数値で組みたいと考えています 詳しいサイトの紹介でもかまいませんので、よろしくお願いします

  • C言語

    プログラム言語のC言語について教えて下さい。 昔BASICを少し勉強しました。 それからプログラム言語から離れてましたがC言語を見て疑問があります。 BASICなら例えば最初に 10 ~ 20 GO TO~ みたいに上段、左詰めでプログラムを書いてましたがC言語って本を見るとやたら左側が膨らんだ?ような空白みたいな表記になってますよね?(説明下手でごめんなさい) この空白みたいな意味が分からないし、この空白?もスペースキーで打つのか分かりません。 C言語の表記の仕方について詳しい方、こんな初心者にでも簡単に分かるように説明して下さる方いたらよろしくお願いします。

専門家に質問してみよう