0
下圖僅包含閾值後的黑白像素。我在這張圖片的頂部畫一個灰色的旋轉矩形。現在我想對這個旋轉的矩形內的黑色像素的數量進行計數,但不包括白色矩形 - 矩形外的黑色像素(即白色矩形內的像素的數量)。opencv:如何填充區域外的區域/邊緣
這樣做的最佳方法是什麼?我應該用白色像素填充白色矩形外的區域嗎?歡迎任何建議。
下圖僅包含閾值後的黑白像素。我在這張圖片的頂部畫一個灰色的旋轉矩形。現在我想對這個旋轉的矩形內的黑色像素的數量進行計數,但不包括白色矩形 - 矩形外的黑色像素(即白色矩形內的像素的數量)。opencv:如何填充區域外的區域/邊緣
這樣做的最佳方法是什麼?我應該用白色像素填充白色矩形外的區域嗎?歡迎任何建議。
如果你知道你要搜索的區域的角度和大小,你可以砍掉它使用這種技術的圖像:
How to straighten a rotated rectangle area of an image using opencv in python?
(我知道它的Python的,但有一個C++當量)
EDIT
您可以使用此代碼返回並打印出每個像素的值,讓你可以在樣你得到回值的想法(應該僅僅是0和1/255,如果二值圖像)
for(int i=0; i<img.rows; i++)
for(int j=0; j<img.cols; j++)
std::cout<<"Value: "<<static_cast<int>(gray_image.at<uchar>(i,j));
一旦你得到這些值可能會做一個計數器,將增加每次像素的值超過一定的閾值
您是否看到灰色旋轉矩形和白色矩形之外有一些黑色像素?在計算黑色像素的數量時,我想排除它們 - 這是我的關鍵問題 – chesschi 2015-02-24 10:57:53
使您的矩形變小5%左右,以便它對圖像的白色部分很緊 – Aphire 2015-02-24 11:03:12
或者準確地說,減少邊直到邊緣沒有黑色像素爲止,您可以使用我的答案中的代碼檢查邊緣像素,只需更改它,以便從0-img.width,0- img.length,img.width - img.length和img.lenth-img.width – Aphire 2015-02-24 11:06:04