数字图像处理
文章平均质量分 68
mcgrady_tracy
这个作者很懒,什么都没留下…
展开
-
libjpeg库使用
libjpeg库是专门用于jpeg图片格式解压和压缩的库程序实例如下:#include #include #include #include #include "jpeg-lib/include/jpeglib.h"#define PUT_2B(array,offset,value) \ (array[offset] = (char) ((val原创 2012-04-08 23:02:58 · 27121 阅读 · 8 评论 -
图像插值算法(最近临插值算法)
对于图像缩放算法来说,最近临插值算法是最简单的。最近临插值算法的原理是在原图像中找到最近临的一个点,然后把这个点的像素值插入到目标图像中,最近临插值算法优点是算法简单,易于实现,但是缺点是由于相邻像素点的像素值相同,容易出现色块现象。那么如何在原图像中找这个目标点呢,算法公式如下:src_x = dst_x * (src_width / dst_width);src_y = dst_y原创 2015-06-24 19:25:46 · 5871 阅读 · 2 评论 -
读取bmp图片代码
代码如下,需要注意结构体对齐问题,编译环境为gcc。#include struct bitmap_fileheader { unsigned short type; unsigned int size; unsigned short reserved1; unsigned short reserved2; unsigned int off_bits;} __attribute__原创 2015-01-23 10:29:09 · 1659 阅读 · 0 评论 -
bmp图像文件格式说明
bmp图片文件包含4个部分数据,位图文件头,位图信息头,颜色表和位图数据(即RGB值)。在看位图格式之前先看一个问题,如果每个像素都用前面的24位色去表示,那么一个像素值需要3个字节数据,24位色也称为真彩色,因为它能表示足够多的颜色。但是要是我们不需要这么多颜色呢,比如我只需要16种颜色就行了,如果还是按照3个字节来表示一个像素,一个640*480位图需要640*480*3共约765k的原创 2012-04-16 15:40:08 · 4748 阅读 · 0 评论 -
OPENCV RGB转单通道灰度图
#include #include int main(int argc, char *argv[]){ IplImage *gray, *img; if (argc return -1; img = cvLoadImage(argv[1]); gray = c原创 2013-03-20 22:28:23 · 11930 阅读 · 0 评论 -
OpenCV学习之矩阵操作
1. 矩阵创建矩阵创建有多种方法,我们可以用cvCreateMat创建一个矩阵,该函数返回指向这个矩阵的指针,函数原型如下:CvMat* cvCreateMat( int height, int width, int type );该方法既分配了矩阵头空间,也分配了数据空间。这个方法是最常用的方法。我们也可以使用cvCreateMatHeader函数只创建一个矩阵头,该函数返回原创 2012-04-10 17:16:49 · 3479 阅读 · 3 评论 -
vc bmp图片存储源代码
int CCameraView::SavePicture(BYTE *buf){ BITMAPFILEHEADER fileHeader; /* bmp file header */ BITMAPINFOHEADER infoHeader; /* bmp information header */原创 2012-12-15 19:36:55 · 2899 阅读 · 6 评论 -
opencv 摄像头读取程序
#include "cv.h"#include "highgui.h"//using namespace std;int main(void){ unsigned char c; cvNamedWindow("test"); CvCapture *capture = cvCreateCameraCapture(0);原创 2012-08-22 15:52:56 · 1008 阅读 · 0 评论 -
OpenCV学习之阈值化
OpenCV中图像阈值处理有两个函数,cvThreshold和cvAdaptiveThreshold。图像处理中可能最重要的一步就是图像的二值化处理,既然需要将图像二之化,那么就不得不使用这两个函数。1. cvThreshold函数原型如下:double cvThreshold( const void* srcarr, void* dstarr, double thresh,原创 2012-04-20 20:28:49 · 11222 阅读 · 3 评论 -
OpenCV学习之子图像操作
我们有时候希望对图像的某个小部分进行操作,而不是对整个图像进行运算。有两种方法,ROI和widthStep。1. ROI设置一个ROI区域使用cvSetImageROI,取消一个ROI使用cvResetImageROI。函数原型分别如下:void cvSetImageROI( IplImage* image, CvRect rect );void cvResetImageROI原创 2012-04-13 11:14:59 · 3512 阅读 · 0 评论 -
OpenCV学习之数据类型
1. CvPointtypedef struct CvPoint{ int x; int y;}CvPoint;CvPoint用来描述图像中的像素点。2. CvSizetypedef struct{ int width; int height;}CvSize;CvSize用来描述图像的尺寸。原创 2012-04-10 15:57:05 · 2051 阅读 · 0 评论 -
OpenCV学习之图像操作
1. 图像创建图像创建使用cvCreateImage,函数原型如下:IplImage * cvCreateImage( CvSize size, int depth, int channels );depth就是介绍图像数据类型时说的图像像素类型,channels为图像通道数量。2. 图像释放图像释放使用cvReleaseImage函数,函数原型如下:voi原创 2012-04-12 13:36:03 · 1476 阅读 · 0 评论 -
OpenCV安装与第一个程
OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库。一、 OpenCV在ubuntu下安装OpenCV下载地址:http://sourceforge.net/projects/opencvlibrary/安装过程其实很简单,只是OpenCV依赖很多库,如果依赖的某些库没有安装好,会导致OpenCV程序不能正常运行,甚至不能编译,所以,在安装OpenCV之前,它本身依赖的原创 2012-04-06 17:58:11 · 2350 阅读 · 0 评论