#python #c #opencv #image-processing
Вопрос:
Я пытаюсь изменить Python на C .
Вот моя первая переменная, определенная следующим образом:
x = np.ones((h,w,4),dtype=np.uint8)*255
Я хочу уравнять третий канал с другой переменной, подобной этой:
x[:,:,3] = y
Я использую OpenCV. Я немного закодировал на C вот так:
cv::Mat x; x = cv::Mat::ones(cv::Size(h, w), CV_32FC1)*255; cv::Mat channel[3]; cv::split(x, channel); channel[0] = cv::Mat::zeros(x.rows, x.cols, CV_32FC1); cv::merge(channel,3,x);
Я получил эту ошибку при запуске кода: merge.dispatch.cpp:129: ошибка: (-215:Утверждение не выполнено) mv[i].размер == mv[0].размер amp;amp; mv[i].глубина() == глубина в функции «слияние»
Как я могу это исправить?
Комментарии:
1. Измените тип
x
на 3 канала,CV_32FC3
.2. Заменить
x = cv::Mat::ones(cv::Size(h, w), CV_32FC1)*255;
наx = cv::Mat::zeros(cv::Size(h, w), CV_32FC3) cv::Scalar(255.0f, 255.0f, 255.0f);
.