【解決方法】C# 画像ピクセルの色の並べ替え方法


道具は他所から持ってきた

画像で使用されるピクセル値を一覧表示できます

私はそれを真似しようとします

メモリ メソッドを使用して画像のピクセル カラー値を抽出し、重複する値を削除しましたが、その並べ替え効果を実現できません。

ピクセル ソートのサンプル画像の URL:https://drive.google.com/file/d/1cOQ0K3te1cKYWTFJONSGyNGszsASEttG/view?usp=share_link

上から下に並べた(4枚の写真の結果)

私が試したこと:

C#
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
            int stride = bitmapData.Stride; 
            IntPtr iptr = bitmapData.Scan0;  
            int DataBytes = stride * bitmap.Height;  
            byte[] Data = new byte[DataBytes];
            Marshal.Copy(iptr, Data, 0, DataBytes);
            bitmap.UnlockBits(bitmapData);

解決策 1

RGB から HSV/HSB に変換し、(H)ue を使用してカラー グループを作成し、次に (S)aturation と (B)rightness を使用してサブソートを行うことができます。 並べ替えたら、RGB 値を表示します。

参照: HSB カラー システム: 実践者のための入門書 – UI デザインを学ぶ[^]

コメント

タイトルとURLをコピーしました