C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 強度画像に変換する方法


(過去ログ 24 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■10573 / inTopicNo.1)  強度画像に変換する方法
  
□投稿者/ エデン (1回)-(2007/11/21(Wed) 01:23:56)

分類:[.NET 全般] 

Private a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer _
, g As Integer, x As Integer
Sub hw11()

For a = 1 To 45
For b = 1 To 45

c = Int((Rnd * 25.5)) * 10
d = Int((Rnd * 25.5)) * 10
e = Int((Rnd * 25.5)) * 10

Sheet1.Cells(a, b).Interior.Color = RGB(c, c, c)


Next b

Next a


For a = 1 To 45
For b = 1 To 45


Sheet2.Cells(a, b).Interior.Color = RGB(g, g, g)
f = MAX(c, d, e)

Next b
Next a


End Sub

Function MAX(ByVal a As Integer, b As Integer, c As Integer)

If c > d Then
If c > e Then
g = c
Else
g = e
End If

Else
g = d
End If

End Function
Sheet1に45×45のセルにランダムに色を付けて、
その後、Sheet2に上記の画像(?)を強度画像(各セルのRGBの値のうち最も高い値の白黒色に変換)に変換、出力するプログラムを作りたいのですが、実行するとSheet2のセルの色が全て同じになってしまいます。
どこが悪いのか教えてください。よろしくおねがいします

引用返信 編集キー/
■10576 / inTopicNo.2)  Re[1]: 強度画像に変換する方法
□投稿者/ カンタービレ (78回)-(2007/11/21(Wed) 03:15:55)
2007/11/21(Wed) 03:16:35 編集(投稿者)
No10573 (エデン さん) に返信
> Sheet1に45×45のセルにランダムに色を付けて、
> その後、Sheet2に上記の画像(?)を強度画像(各セルのRGBの値のうち最も高い値の白黒色に変換)に変換、
> 出力するプログラムを作りたいのですが、実行するとSheet2のセルの色が全て同じになってしまいます。
> どこが悪いのか教えてください。よろしくおねがいします
> 
えと、ExcelVBAでいいデスね?
色々おかしいので回答例を書くべきかちょっと考えましたが、書いちゃいマス。
参考までに修正してみた下のコードと見比べてみて下さい。

MAX関数のしたいことは、WorksheetFunction.max()に変えて、ループもシート別にせず、
シート1のカラー表示もカラフルに♪変数も整理したデス。
2重ループをわざわざシート単位に2回してるので、1回目でセル単位に計算してても、そのループ結果の最後の結果で
シート2はループしてるので、何回ループしても同じ色しか出ないのが一番悪いとこデス。
Private変数も使ってないのもあるケド、最大値の求め方が関数で自力でしなければならないのなら
引数に渡す方が私は好きデス。

Sub nodame()
    Dim color(2) As Integer
    Dim i As Integer, j As Integer, max As Integer

    For i = 1 To 45
        For j = 1 To 45
            color(0) = Int((Rnd * 25.5)) * 10
            color(1) = Int((Rnd * 25.5)) * 10
            color(2) = Int((Rnd * 25.5)) * 10
            Sheet1.Cells(i, j).Interior.color = RGB(color(0), color(1), color(2))
            max = WorksheetFunction.max(color)
            Sheet2.Cells(i, j).Interior.color = RGB(max, max, max)
        Next j
    Next i
End Sub


引用返信 編集キー/
■10588 / inTopicNo.3)  Re[2]: 強度画像に変換する方法
□投稿者/ エデン (2回)-(2007/11/21(Wed) 14:43:11)
カンタービレ様本当にありがとうございましたm(__)m。

また何かあったらお願いします
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -