none
<請教>HSLㄉ程式引入問題請教 RRS feed

  • 問題

  • 我要把前面ㄉRGB轉HSL的程式載入到button13裡面   但出現以下的錯誤 請大家幫幫忙看如何修正唷!!

    錯誤 1 '_010101100.Form1.HSL.RGB2HSL(_010101100.Form1.ColorRGB, out double, out double, out double)' 的保護層級導致無法對其進行存取 E:\影像處理\2010101100\2010101100\2010101100\Form1.cs 659 17 2010101100

        public struct ColorRGB
        {
    
          public byte R;
    
          public byte G;
    
          public byte B;
    
          public ColorRGB(Color value)
          {
    
            this.R = value.R;
    
            this.G = value.G;
    
            this.B = value.B;
    
          }
    
          public static implicit operator Color(ColorRGB rgb)
          {
    
            Color c = Color.FromArgb(rgb.R, rgb.G, rgb.B);
    
            return c;
    
          }
    
          public static explicit operator ColorRGB(Color c)
          {
    
            return new ColorRGB(c);
    
          }
    
        }
    
    
        public class HSL
        {
    
          private void RGB2HSL(ColorRGB rgb, out double h, out double s, out double l)
          {
            double r = rgb.R / 255.0;
    
            double g = rgb.G / 255.0;
    
            double b = rgb.B / 255.0;
    
            double v;
    
            double m;
    
            double vm;
    
            double r2, g2, b2;
    
    
    
            h = 0; // default to black
    
            s = 0;
    
            l = 0;
    
            v = Math.Max(r, g);
    
            v = Math.Max(v, b);
    
            m = Math.Min(r, g);
    
            m = Math.Min(m, b);
    
            l = (m + v) / 2.0;
    
            if (l <= 0.0)
            {
    
              return;
    
            }
    
            vm = v - m;
    
            s = vm;
    
            if (s > 0.0)
            {
    
              s /= (l <= 0.5) ? (v + m) : (2.0 - v - m);
    
            }
    
            else
            {
    
              return;
    
            }
    
            r2 = (v - r) / vm;
    
            g2 = (v - g) / vm;
    
            b2 = (v - b) / vm;
    
            if (r == v)
            {
    
              h = (g == m ? 5.0 + b2 : 1.0 - g2);
    
            }
    
            else if (g == v)
            {
    
              h = (b == m ? 1.0 + r2 : 3.0 - b2);
    
            }
    
            else
            {
    
              h = (r == m ? 3.0 + g2 : 5.0 - r2);
    
            }
    
            h /= 6.0;
    
          }
    
    
    
        }
    
     private void button13_Click_1(object sender, EventArgs e)
        {
          double h, s, l;
          HSL.RGB2HSL(new ColorRGB(Color.Red), out h, out s, out l);
        }
    
    2010年10月19日 下午 05:40

解答

所有回覆

  • 你應該把問題留在同一個討論串, 這樣一直開新文都把我給搞糊塗了.
    2010年10月19日 下午 05:52
  • 不好意思唷!!! 因為我今天改變方向來做

    我分兩個部分 一個事先用影像處理來先做圖片的RGB轉HSL

    第二個部分是 轉HSL後再做OCR文字辨識

    因為之前ㄉ問題已經有人給我一點方向   所以我才想說做這兩個部分...

    麻煩大大您給點我這篇ㄉ建議唷!! 感 恩~~

    2010年10月19日 下午 06:10
  • 參考 MSDN 存取修飾詞
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度
    2010年10月20日 上午 12:59
  • 不好意思 我知道了!!!    但我都會試過很多方法不行才來PO問請教

    但還是謝謝你的指導!!

    2010年10月20日 上午 04:18
  • public static void RGB2HSL(ColorRGB rgb, out double h, out double s, out double l)

    張貼文章應注意事項及應提供資訊

    http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/e707eac3-3038-4be8-a925-eaec92a88c5f

    有些事項請參考以上,您之前不是這樣寫嗎?沒看懂Alex大的提示喔...
    • 已標示為解答 黑夜之靈 2010年10月24日 上午 02:14
    2010年10月20日 上午 04:36