python下的opencv和c++下的opencv的图片类型差异

发布于 2022-09-11 18:20:35 字数 1041 浏览 19 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

征﹌骨岁月お 2022-09-18 18:20:35

擦,版本不一样,一个2.,一个3.,真是巨坑。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文