opencv,图片像素和尺寸大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv,图片像素和尺寸大小相关的知识,希望对你有一定的参考价值。

同一尺度不同分辨率(像素)的两张图片时(如尺寸320*240)时,为什么在读图片像素点数都是320x240个点,像素和尺度是什么关系?哈哈,大神给补脑下谢谢!~

同一尺度?还是同一尺寸?
尺度跟像素没有任何关系。尺度空间是通过数字变化得到的一个概念上的空间。
实际图像中,你直接得不到尺度空间的。
常见的有:线性尺度空间、近似线性尺度空间和非线性尺度空间。

分辨率是单位尺寸上的像素个数。如每英寸多少像素。
如果图片分辨率是60PPI,你图片大小是1x2英寸.
那么这幅图像的像素点数为1x60x2x60=720个点。
参考技术A OpenCV中获取图像某一像素值 This is a basic example for the OpenCV.First we must know the structure of IplImage:IPL image:IplImage  |-- int  nChannels;     // Number of color channels (1,2,3,4)  |-- int  depth;         // Pixel depth in bits:  |                       //   IPL_DEPTH_8U, IPL_DEPTH_8S,  |                       //   IPL_DEPTH_16U,IPL_DEPTH_16S,  |                       //   IPL_DEPTH_32S,IPL_DEPTH_32F,  |                       //   IPL_DEPTH_64F  |-- int  width;         // image width in pixels  |-- int  height;        // image height in pixels  |-- char* imageData;    // pointer to aligned image data  |                       // Note that color images are stored in BGR order  |-- int  dataOrder;     // 0 - interleaved color channels,  |                       // 1 - separate color channels  |                       // cvCreateImage can only create interleaved images  |-- int  origin;        // 0 - top-left origin,  |                       // 1 - bottom-left origin (Windows bitmaps style)  |-- int  widthStep;     // size of aligned image row in bytes  |-- int  imageSize;     // image data size in bytes = height*widthStep  |-- struct _IplROI *roi;// image ROI. when not NULL specifies image  |                       // region  to be processed.  |-- char *imageDataOrigin; // pointer to the unaligned origin of image data  |                          // (needed for correct image deallocation)  |  |-- int  align;         // Alignment of image rows: 4 or 8 byte alignment  |                       // OpenCV ignores this and uses widthStep instead  |-- char colorModel[4]; // Color model - ignored by OpenCV//------------------------------------------------------------------------------int main(int argc, char* argv[])...    IplImage *img=cvLoadImage("c://fruitfs.bmp",1);    CvScalar s;    for(int i=0;i<img->height;i++)...        for(int j=0;j<img->width;j++)...        s=cvGet2D(img,i,j); // get the (i,j) pixel value        printf("B=%f, G=%f, R=%f ",s.val[0],s.val[1],s.val[2]);        s.val[0]=111;        s.val[1]=111;        s.val[2]=111;        cvSet2D(img,i,j,s);//set the (i,j) pixel value                cvNamedWindow("Image",1);    cvShowImage("Image",img);    cvWaitKey(0); //等待按键    cvDestroyWindow( "Image" );//销毁窗口    cvReleaseImage( &img ); //释放图像    return 0;

追问

这是用OPencv 读取图片及像素值,这个会啦。可能你没懂我的意思! 不过 谢谢~

以上是关于opencv,图片像素和尺寸大小的主要内容,如果未能解决你的问题,请参考以下文章

opencv标定板像素尺寸

OpenCV教程(11)-- 图像压缩操作

Opencv 中图片像素操作的应用实例——计算图片某一种颜色区域大小所占比

怎么用opencv2.0将图像大小改变到指定像素?

OpenCV图像的概念和基本操作

opencv中为啥图像局矩阵是以BGR而不是RGB显示像素的大小?