对于numpy中的RGB图像,cv::MatIterator的等价物是什么?
我读过numpy.nditer
,但我不能准确地用它来表达我的需求。在
例如,考虑下面的C++代码,使用OpenCV迭代每个像素并分配RGB值:
cv::Mat rgbImage(someheight, somewidth, CV_8UC3);
cv::MatIterator_<cv::Vec3b> first = rgbImage.begin<cv::Vec3b>()
cv::MatIterator_<cv::Vec3b> last = rgbImage.end<cv::Vec3b>()
while (first!=last){
*first = (get <cv::Vec3b> value from somewhere)
++first;
}
在上面的代码中,MatIteratorfirst
用于在图像中的每个像素处直接分配cv::Vec3b类型的(R,G,B)值。在
考虑到下面的Python代码
^{pr2}$有人能提供一个例子来说明一个等价的numpy版本是如何直接分配(R,G,B)值的元组吗? 谢谢!在
迭代数组的一种简单方法是使用^{} 和一个for循环,然后您可以修改其中的图像,下面是如何使用它的示例:
记住OpenCV使用BGR而不是RGB。因此,如果您想将洋红颜色(BGR=(255,0255))指定给尺寸为3x4的黑色图像中的像素(x=1,y=2),请执行以下操作:
^{pr2}$相关问题 更多 >
编程相关推荐