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