Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在opencv中转换图像深度(CV_8UC3)? #包括“stdafx.h” #包括“opencv2/highgui/highgui.hpp” #包括“opencv2/imgproc/imgproc.hpp” #包括 使用名称空间cv; 使用名称空间std; int main(int argc,字符**argv){ Mat img=imread(“Nature.jpg”);//从文件中读取图像 Mat img_Chin; img.convertTo(img_chn,CV_16UC3); imshow(“更改的图像”,img_chn);//显示更改的图像 imshow(“原始图像”,img);//显示原始图像 waitKey(0);//等待用户按某个键 返回0; }_Opencv - Fatal编程技术网

如何在opencv中转换图像深度(CV_8UC3)? #包括“stdafx.h” #包括“opencv2/highgui/highgui.hpp” #包括“opencv2/imgproc/imgproc.hpp” #包括 使用名称空间cv; 使用名称空间std; int main(int argc,字符**argv){ Mat img=imread(“Nature.jpg”);//从文件中读取图像 Mat img_Chin; img.convertTo(img_chn,CV_16UC3); imshow(“更改的图像”,img_chn);//显示更改的图像 imshow(“原始图像”,img);//显示原始图像 waitKey(0);//等待用户按某个键 返回0; }

如何在opencv中转换图像深度(CV_8UC3)? #包括“stdafx.h” #包括“opencv2/highgui/highgui.hpp” #包括“opencv2/imgproc/imgproc.hpp” #包括 使用名称空间cv; 使用名称空间std; int main(int argc,字符**argv){ Mat img=imread(“Nature.jpg”);//从文件中读取图像 Mat img_Chin; img.convertTo(img_chn,CV_16UC3); imshow(“更改的图像”,img_chn);//显示更改的图像 imshow(“原始图像”,img);//显示原始图像 waitKey(0);//等待用户按某个键 返回0; },opencv,Opencv,当我运行此代码时,我在更改的图像窗口中看到黑屏。如果我写的是CV_8UC3而不是CV_16UC3,那么就不会发生问题 我的目的是将8位图像转换为16位图像,我应该怎么做?此行为是正确的 img\u chn已正确初始化,您无法看到它,因为它将CV\u 16U图像除以256,因此图像将显示为黑色(因为img\u chn中的所有值都是此行为是正确的 img_chn已正确初始化,您无法看到它,因为它会将CV_16U图像除以256,因此您的图像将显示为黑色(因为img_chn中的所有值都是谢谢,如果您想转

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


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

此行为是正确的


img\u chn
已正确初始化,您无法看到它,因为它将CV\u 16U图像除以256,因此图像将显示为黑色(因为
img\u chn
中的所有值都是
此行为是正确的


img_chn
已正确初始化,您无法看到它,因为它会将CV_16U图像除以256,因此您的图像将显示为黑色(因为
img_chn
中的所有值都是
谢谢,如果您想转换为32位,那么必须在这个中写入什么?img.convertTo(img_chn,CV_16UC3,#35; 35;);如果您指的是浮点值CV_32F,则需要将这些值设置为[0,1],因此
img.convertTo(img_chn,CV_32F,1.0/255.0)
;@Berkay适当的图像为8U、16U或32F,imshow scales仅正确显示这些格式。显然,您可以有一个32S的矩阵,但需要进行转换(适当的缩放)请按上述格式之一正确显示。@Berkay如果此问题回答了您的原始问题,请接受它。如果您还有与此问题无关的其他问题,请创建一个新的答案。如果您对此答案不满意,请告诉我谢谢,如果您想转换为32位,您必须在这个?img.conv中写什么ertTo(img_chn,CV_16UC3,####),如果你是指浮点值CV_32F,你需要这些值在[0,1]中,因此
img.convertTo(img_chn,CV_32F,1.0/255.0)
@Berkay正确的图像是8U,16U或32F,并且imshow比例仅正确显示这些格式。显然,你可以有一个32S的矩阵,但你需要转换(以适当的比例)请按上述格式之一正确显示。@Berkay如果此问题回答了您的原始问题,请接受。如果您还有与此问题无关的其他问题,请创建一个新的答案。如果您对此答案不满意,请告诉我
#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;
}
img.convertTo(img_chn,CV_16UC3, 256);