1 实验一 Matlab图像基本操作及C之间转换 一、实验目的 熟悉利用Matlab 进行图像处理的基本操作,了解图像数据的存储形式及进行图像处理编程的步骤方法。 二、实验内容 矩阵赋值、求最大值等操作( 见上传的.m 文件),转换为 C 语言。 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告 1#include int main() { int a[4]={1,4,7,3}; int i,t,j; for(i=0;i<4;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t} printf("%d",a[3]); return 0; } 2 #include int main() { int result,i; result=1; i=2; while(i<=10) { result=result*i; i=i+1 } printf("%d\n",result); return 0; } 3 #include int main() { int r,i; 2 r=1; i=2; if(i<1000) {r=r*i; i++;} else break; printf("%d\n",r); return 0; } 实验二 两种直方图运算的实现 一、实验目的 巩固图像处理编程的步骤格式,理解图像直方图的原理,掌握图像直方图的实现方法。 二、实验内容 1、 从图像的行列扫描以及直方图的灰度扫描两种思路进行编程 2、 比较两种实现方法的复杂度,并计算两种方法的完成时间。 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告 1.clc,clear; A=imread('lena.bmp'); B=rgb2gray(A); C=double(B); h=zeros(1,256); for i=0:255 h(i+1)=length(find(B==i)); end figure(1) bar(h) 2. clc,clear; A=imread('lena.bmp'); B=rgb2gray(A); C=double(B); s=size(C); h=zeros(1,256); for i=1;s(1); for j=1:s(2); k=B(i,j); k=floor(k); 3 h(k+1)=h(k+1)+1; end end subplot(2,2,1);imshow(B) subplot(2,2,2);plot(h) 实验三 直方图的C语言转换 一、实验目的 理解图像灰度变换和直方图的概念,掌握灰度变换和直方图均衡化的原理及实现方法。 二、实验内容 1、 直方图 绘制直方图,观察图像效果与直方图的关系 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告 //将所有的直方图数组清 0 int h[256]; for(i = 0; i < 256; i++) h[i] = 0; //遍历图像,计算直方图数组 for(y = 0; y < H; y++) { for(x = 0; x < W; x++) { unsigned char...