我正在寻找有关基本C++类型大小的详细信息.我知道这取决于架构(16位,32位,64位)和编译器.
但是有没有C++的标准?
我在32位架构上使用Visual Studio 2008.这是我得到的:
char : 1 byte
short : 2 bytes
int : 4 bytes
long : 4 bytes
float : 4 bytes
double: 8 bytes
Run Code Online (Sandbox Code Playgroud)
我试图找到,但没有成功,可靠的信息,表述的大小char,short,int,long,double,float(和其他类型的我没想到的),在不同的体系结构和编译器.
我对OpenCV中type()的Mat对象方法感到困惑.
如果我有以下行:
mat = imread("C:\someimage.jpg");
type = mat.type();
Run Code Online (Sandbox Code Playgroud)
和type = 16.如何找出垫阵的类型?
我试图在其手册或几本书中找到答案是徒劳的.
我正在尝试使用定义400x400垫的OpenCV打印图像:
plot2 = cv::Mat(400,400, CV_8U, 255);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试打印点时,会发生一些奇怪的事情.y坐标仅打印到前100个值.也就是说,如果我打印点(50,100),它不会在列的100/400部分打印,而是在最后打印.不知何故,400列已变为100.
例如,运行时:
for (int j = 0; j < 95; ++j){
plot2.at<int>(20, j) = 0;
}
cv::imshow("segunda pared", plot2);
Run Code Online (Sandbox Code Playgroud)
显示这个(带下划线的部分是与上面代码对应的部分):
当它应该仅占据屏幕的95/400时,到95的线几乎占据所有400点.
我究竟做错了什么?