原圖:

尺寸:240 × 150
灰度化:

1. 程序中輸出像素點的灰度值:


2. 用工具取得的灰度值:
按照如下的坐標(圖像處理坐標系)

得到的灰度值:
(35,82)

(82,35)


換算后分別是125(差兩個像素值應該是誤差)和178與之前的相對應
--------------------------------------------------------------------------------------------------
但是在【畫圖中】我們取的(35,82),底下卻顯示(82,35)


這是因為windows的坐標系是這樣的:

--------------------------------------------------------------------------------------------------
結論1:
opencv嚴格按照數字圖像的坐標系取像素點
當你創建一個2*5的數組array[2][5]的時候
1 2 3 4 5
6 7 8 9 0
轉成圖像便是width*height=5*2的圖像
要注意的就是這里。
一般我們會首先取得圖像,很容易會這樣寫
w = size.width = 5
h = size.height = 2
然后遍歷
int val = img.at<uchar>(w,h)
重點:但是img中最后一個是img.at<char>(1,4),而不是img.at<char>(4,1),這里很容易就會發生溢出,這問題賊煩
結論2:
opencv不要使用size.width和size.height(很容易去對應x,y),改為使用row(對應x)和col(對應y)。
