计算机图形图像处理 实验一

该博客介绍了计算机图形图像处理实验,主要涉及Opencv的安装配置,包括图像读取、显示和信息获取。接着,详细讲解了图像的基本运算,如加减乘除、灰度级变换、图像平移、缩放和旋转,以及直方图均衡化处理。在直方图均衡化部分,博主强调需自行编写函数,避免使用Opencv内置函数,并概述了处理步骤。
摘要由CSDN通过智能技术生成

计算机图形图像实验

一. 图像处理初步

1. opencv安装,配置

VS配置opencv时,要修改三个地方,如下图

这里写图片描述

这里写图片描述

2.图像读取与显示

//CvArr
//CvMat 是CvArr的子类
//IplImage 是CvMat的子类,这里使用IplImage读取和显示文件
IplImage* img1 = cvLoadImage(imagename1);
cvShowImage("title", img);
cvWaitKey(0);
//释放内存
cvReleaseImage(&img1);
//销毁窗口
cvDestroyWindow("title");

3.图像信息

//宽
img->width
//高
img->height
//大小,这个好像与实际大小不太相符,不是很清楚
img->size

二. 图像基本运算

1.加减乘除

图形相加
void add() {

    cout << "图片加法运算" << endl;
    const char* imagename1 = "1_add.jpg";
    const char* imagename2 = "2_add.jpg";
    IplImage* img1 = cvLoadImage(imagename1);
    IplImage* img2 = cvLoadImage(imagename2);
    //获取两图片的最小宽、最小高
    int min_width = min(img1->width, img2->width);
    int min_height = min(img1->height, img2->height);
    //cvSetImageROI设置感兴趣区域,在此处进行操作
    cvSetImageROI(img1, CvRect(0, 0, min_width, min_height));
    cvSetImageROI(img2, CvRect(0, 0, min_width, min_height));
    //两图片相加
    cvAddWeighted(img1, 0.5, img2, 0.5, 0.0, img1);

    cvShowImage("图片相加", img1);

    cvWaitKey(0);
    //释放内存
    cvReleaseImage(&img1);
    //销毁窗口
    cvDestroyWindow("图片相加");
}

实验结果:

这里写图片描述 这里写图片描述 这里写图片描述
图像一 图像二 结果
图形相减
void sub() {

    cout << "图片减法运算" << endl;
    const char* imagename1 = "1_sub.jpg";
    const char* imagename2 = "2_sub.jpg";
    IplImage* img1 = cvLoadImage(imagename1);
    IplImage* img2 = cvLoadImage(imagename2);

    int min_width = min(img1->width, img2->width);
    int min_height = min(img1->height, img2->height);
    cvSetImageROI(img1, CvRect(0, 0, min_width, min_height));
    cvSetImageROI(img2, CvRect(0, 0, min_width, min_height));

    cout << "图片一:" << img1->width  << " " << img1->height << endl;
    cout << "图片二:" << img2->width << " " << img2->height << endl;

    //cvAddWeighted(img1, 0.5, img2, -0.5, 0.0, img1);
    cvSub(img1, img2, img1);

    cvShowImage("图片相减", img1);

    cvWaitKey(0);
  
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值