4
我試圖使用定義400x400的墊OpenCV的打印圖像:OpenCV的不承認墊尺寸
plot2 = cv::Mat(400,400, CV_8U, 255);
但是當我嘗試打印點,一些奇怪的事情發生了。 y座標僅打印到前100個值。也就是說,如果我打印點(50,100),它不會在列的第100/400部分打印它,但在最後。不知何故,400列已變成100
例如,在運行此時:
for (int j = 0; j < 95; ++j){
plot2.at<int>(20, j) = 0;
}
cv::imshow("segunda pared", plot2);
顯示此(下劃線部分是對應於上面的代碼的部分):
當它應該佔據屏幕的95/400時,到95的線幾乎佔據了所有400點。
我在做什麼錯?
你確定了「重要提示」部分?你能否提供這些信息的來源?你是說如果你創建一個圖像爲'plot2 = cv :: Mat(400,400,CV_16U,255);'用'plot2.at(20,j)= 0訪問;'會出錯嗎?我不這麼認爲。 –
Antonio
很確定。我現在手裏沒有OpenCV代碼。並且在線搜索部分代碼很困難。現在看到這個http://stackoverflow.com/a/32663709/4523099我會盡力爲我的筆記稍後提供一些清晰的參考。 –
非常感謝您指出這一點!我已經做了一些研究,我已經發布了我的結果作爲附加答案[有](http://stackoverflow.com/a/37484930/2436175)。我認爲你的答案可能會更精確一些:不應該使用'uint16_t',但是不清楚實際應該使用什麼(可能沒有簽名的short可能沒問題,但是在那一點上我更喜歡這種方法在我的答案中)。 – Antonio