回答受付中のQ&A
PHPでの画像処理
PHPでの画像処理
昨日質問させてもらいましたが、
(http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1311366000...)
私の説明不足のため、再度質問させていただきます。
(200文字以内で収まらなかったものありますが・・・)
前回のベストアンサーの方が、わかりやすく説明してくださったのですが、
(以下ベストアンサーの方の説明を使用させていただきます。)
全く同じ幅・高さの画像が3つをつかい、(大きさは2002、1112ピクセルです)
先頭の画像を「画像1」とする。
他の画像を順に「画像2」「画像3」とする。
同じ幅・高さの新しい画像を「画像4」として用意する。
(作成時は色が載っていないのでR0,G0,B0となり自動的に黒塗りされることになる)
以下、「画像(x, y)」でその画像の座標を表すとする。
また、「R(画像(x,y))」でその部分の赤成分値(256諧調)を表すとする。GとBも同様。
分母がゼロの場合は値はゼロとする。
R(画像4(0, 0)) = R(画像1(0, 0)) / { R(画像1(0, 0)) + R(画像2(0, 0)) + R(画像3(0, 0)) }
G(画像4(0, 0)) = G(画像1(0, 0)) / { G(画像1(0, 0)) + G(画像2(0, 0)) + G(画像3(0, 0)) }
B(画像4(0, 0)) = B(画像1(0, 0)) / { B(画像1(0, 0)) + B(画像2(0, 0)) + B(画像3(0, 0)) }
R(画像4(1, 0)) = R(画像1(1 0)) / { R(画像1(1, 0)) + R(画像2(1, 0)) + R(画像3(1, 0)) }
G(画像4(1, 0)) = G(画像1(1, 0)) / { G(画像1(1, 0)) + G(画像2(1, 0)) + G(画像3(1, 0)) }
B(画像4(1, 0)) = B(画像1(1, 0)) / { B(画像1(1, 0)) + B(画像2(1, 0)) + B(画像3(1, 0)) }
R(画像4(2, 0)) = R(画像1(2, 0)) / { R(画像1(2, 0)) + R(画像2(2, 0)) + R(画像3(2, 0)) }
G(画像4(2, 0)) = G(画像1(2, 0)) / { G(画像1(2, 0)) + G(画像2(2, 0)) + G(画像3(2, 0)) }
B(画像4(2, 0)) = B(画像1(2, 0)) / { B(画像1(2, 0)) + B(画像2(2, 0)) + B(画像3(2, 0)) }
...
という画像4を作成したいと考えており、
質問ですが、この画像処理をするとなるとソースコードはどのようになるのでしょうか?
よろしくお願いします。
前回のベストアンサーの方へ、
分かりにくい説明でご迷惑をおかけしてすみませんでした。考え方はまったくその通りです。
回答してもらえるとうれしいです。よろしくお願いします。
- 補足
- 回答ありがとうございます。
補足ですが、平均値で間違えありません。
回答者さんに指摘されて自分の考えに間違えていることがわかりました。
正確には、平均値なので比を出した後にカラー(0~255)にしないといけないため、比を計算後に255を掛け算しないといけないということでしょうか。失礼ですが、その場合はどのようになりますか。
補足を拝見されていたら、よろしくお願いします。
この質問は、ryosuke_i_628さんに回答をリクエストしています。
(ほかの方からの回答を制限するものではありません)
-
- 質問日時:
- 2013/9/19 12:50:13
-
- 残り時間:
- 7日間
-
- 補足日時:
- 2013/9/19 22:42:10
-
- 閲覧数:
- 319
- 回答数:
- 1
-
- お礼:
- 知恵コイン
- 50枚
回答
(1件中1〜1件)
プログラムはとりあえず出来ました。
http://codepad.org/0ilKMp6m
しかしこれ・・・作った後に気付いたんですが・・・
はい、もちろん「真っ黒」以外の画像が出来上がるはずがありません。
新しく生成する座標の値が全て0~1の範囲のfloatになり、intキャストすれば0にしかならないのにお気づきでしょうか?
よくFPSなどでKillDeath比率って表したりしますよね。
あれって「Kill / (Kill+Death) * 100」という計算式の場合は絶対に0~100(%)の範囲に収まりますよね?
それと同じです。
この計算式は無意味です。
(個人的には座標の「平均値」を取りたかったのかなぁとは思いましたが)
【追記】
平均値であればもっと簡単に書けます。
http://codepad.org/Sd2ejGA2
>> 平均値なので比を出した後にカラー(0~255)にしないといけないため、比を計算後に255を掛け算しないといけない
どう考えたらそうなるんでしょうか・・・
質問者さんが最初に提示されていた例は「比」です。
例題1: 男の子が3人、女の子が7人います。男の子は全体を1としたときにどれだけにあたるでしょうか。
回答1: 3 / (3 + 7) = 0.3 より「0.3」。
備考1: 歩合で表すならば10をかけて「3割」。百分率で表すならば100をかけて「30%」。
一方私が提示したものは「平均値」で、「比」とは全く関係がありません。
例題2: りんごが6個、みかんが4個、なしが2個あります。平均するとくだもの1種類当たり何個あるでしょうか。
回答2: (6 + 4 + 2) ÷ 3 = 4より「4個」
備考2: 「÷3」は「3種類」あるからそれで割って「1種類あたり」を計算しています。
分かりやすいように小学校の計算ドリル風に例を提示しましたが(笑)、単純なことです。
- 違反報告
- 編集日時:2013/9/19 23:43:15
- 回答日時:2013/9/19 15:27:49
このカテゴリの回答受付中の質問
[一覧]- 同じ内容を取得したいのですが、セレクト選択とテキスト入力で出力される内容が違...
- PHPでの画像処理
- PHPとMySQLのPDOで接続について
- PHPのphpinfo()が表示されない
- 初心者ですPHPの動作環境を整えたいです。