python下的opencv和c++下的opencv的图片类型差异
python下的opencv和c++下的opencv都使用imread方法打开,发现图片打印出来的bgr像素不一样???为什么?
python下打印mat bgr像素方法是:
im = cv2.imread(args.image_path, cv2.IMREAD_COLOR)
im_height, im_width, im_channel = im.shape
for imh in range(0, im_height - 1):
for imw in range(0, im_width - 1):
imb, img, imr = im[imw, imh]
print ("w ", imw, "h ", imh, " b ", imb, " g ", img, " r ", imr)
c++下打印mat bgr像素方法是:
cv::Mat input_img = cv::imread(imgPath, cv::IMREAD_COLOR);
int nr= input_img.rows; // number of rows height
int nc= input_img.cols; // number of columns width
for (int j=0; j<nc; j++) {
for (int i = 0; i<nr; i++) {
int b = input_img_origin.at<cv::Vec3b>(j, i)[0];
int g = input_img_origin.at<cv::Vec3b>(j, i)[1];
int r = input_img_origin.at<cv::Vec3b>(j, i)[2];
printf("input image j %d, i %d\n", j, i);
printf("r %d", r);
printf(" g %d", g);
printf(" b %d\n", b);
} // end of row
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
擦,版本不一样,一个2.,一个3.,真是巨坑。。。