INT陣列我分裂我的IMG到3個獨立的墊這樣的:保存墊入的OpenCV
std::vector<Mat> planes(3);
cv::split(img, planes);
cv::Mat R = planes[2];
cv::Mat G = planes[1];
cv::Mat B = planes[0];
現在我想存儲這些R,在三個不同的陣列G和燒烤值。財產以後這樣的: 例如用於R.
std::vector<Mat> planes(3);
cv::split(img, planes);
cv::Mat R = planes[2];
int r[20];
for (i=0 ; i<20 ; i++)
{
r[i]= R[i];
}
我知道這會給錯誤。那麼我如何正確實現這個功能呢?
這會給我第一行的像素值(紅色),對吧? – user2799508
是的,但據我可以從cv :: split()內部看到,第二行將從沒有填充的第一個圖像繼續。你可以使用'R.isContinuous()'來檢查這是否爲真。因此'r'不僅僅是一個指向第一行的指針,它是一個指向整個圖像數據的指針。一般來說,我不會像這樣公開圖像的結構,沒有很好的理由。 – Bull