gpt4 book ai didi

opencv - 如何在opencv中转换图像深(CV_8UC3)?

转载 作者:行者123 更新时间:2023-12-02 16:38:38 33 4
gpt4 key购买 nike

#include "stdafx.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv){

Mat img = imread("Nature.jpg"); // Read image from file
Mat img_chn;

img.convertTo(img_chn,CV_16UC3);

imshow("Changed image", img_chn); //show the changed image
imshow("Original İmage", img); //show the original image

waitKey(0); // Wait until user press some key
return 0;
}

运行此代码时,在“更改的图像”窗口中看到黑屏。如果我写的是 CV_8UC3而不是 CV_16UC3,那么不会发生任何问题。

我的目的是将8位图像转换为16位图像,该怎么办?

最佳答案

此行为是正确的。
img_chn已正确初始化,您看不到它,因为imshow会将CV_16U图像除以256,因此您的图像将显示为黑色(因为img_chn中的所有值都是<= 255)。

如果将图像转换为CV_16U,则将范围从[0,255]到[0,255 * 256]的值按比例放大:

img.convertTo(img_chn,CV_16UC3, 256);

您会正确看到图像。

关于opencv - 如何在opencv中转换图像深(CV_8UC3)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966269/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com