簡體   English   中英

獲取像素值灰度圖像16位.net

[英]get pixel value greyscale image 16 bits .net

我有一個pixels16列表pixels16 ,其中包含來自16位灰度圖像的pixeldata。 然后,我有一個顯示圖像的pícturebox和一個函數,用戶可以單擊它在圖片框中的任意位置,系統將返回該位置的pixelvalue(請參見代碼下方)

這是用於返回給定位置的像素值的代碼:在我看來,我正在顯示用戶在圖像中某個位置單擊的確切像素的值,對嗎?

我的邏輯是,如果圖像為512x512,那么我可以先走Y然后找到斑點,再走X ,得到該點的像素值,如下所示: int pixelposition = (512 * (y-1)) + x;

我的方向正確嗎?

        for (int y = 0; y < picbox_mpr.Width; y++)
        {
            if (e.Y == y)
            {
                for (int x = 0; x < picbox_mpr.Height; x++)
                {
                    if (e.X == x)
                    {
                        int pixelposition = (512 * (y-1)) + x;
                        string a= pixels16[pixelposition].ToString();
                        MessageBox.Show(a);
                    }
                }
            }
        }
 for (int y = 0; y < picbox_mpr.Width; y++) { if (eY == y) { for (int x = 0; x < picbox_mpr.Height; x++) { if (eX == x) { 

啊,是的, 對於假設的模式。

這應該簡單地變成

int pixelposition = (512 * (e.Y-1)) + e.X;
string a= pixels16[pixelposition].ToString();
MessageBox.Show(a);

沒有循環。

您應該注意,eX和eY是基於鼠標相對於控件頂部而不是圖像相對於屏幕的位置。 在某些模式下,由於頁邊距的緣故,這會有些錯誤,但是如果滾動,縮放或居中,那將是非常錯誤的。 您應該查看此示例代碼 ,了解如何轉換為圖像坐標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM