数字图像处理习题(一)

article/2025/8/19 1:41:46

数字图像处理习题(一)

文章目录

  • 数字图像处理习题(一)
    • 一、简答题
    • 二、编程题
      • 1. 图像处理
        • 1.1 图像导入、裁减显示(长宽分别为原尺寸1/2)、彩色图像灰度化、保存
      • 2. 图像采样与量化
        • 2.2 利用求均值方法是实现4倍降采样
        • 2.3 手动编写量化函数,将灰度级改为8
      • 3. 图像变换
        • 3.1 手写图像反转
        • 3.2 非线性变换完成对数变换
      • 4. 直方图
        • 4.1 完成清华大学出版社教材例5.6,5.7
        • 4.2 手写函数替换imhist()
      • 5. 空域低通滤波
        • 5.2 图像分别添加椒盐噪声与乘性噪声,手写实现3 * 3窗口均值滤波与中值滤波,并比交两种方法在不同噪声下的去噪效果。提示:嵌套使用for循环语句


一、简答题

1. 什么是数字图像,数字图像有哪些特点

答:数字图像,是以二维数字组形式表示的图像,是二维图像用有限数字数值像素的表示。由数组或矩阵表示,其光照位置和强度都是离散的。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。

​ 数字图像特点:处理的信息多数为二维信息,运算量巨大;各个像素互不独立,相关性大;数字图像占用的频带较宽。

2. 若RGB图像中每一幅红、绿、蓝都是一幅8bit图像,则该RGB图所有可能的颜色总数是多少?

答:16777216种。

​ 每幅红、绿、蓝图像都是一幅8bit图像,则每个RGB颜色色值有2^8= 256个(0-255)。所以该RGB图所有可能的颜色总数为(28)3 = 16777216。

二、编程题

1. 图像处理

1.1 图像导入、裁减显示(长宽分别为原尺寸1/2)、彩色图像灰度化、保存

  • 编程思路:

    (1)图像导入:使用 imread()函数将图像读入工作区。

    (2)剪裁(长宽分别为原尺寸1/2):首先使用size()获取图像的长宽并储存,用rect[x,y,length,width]设置参数,从某个有效的x、y坐标开始裁剪1/2的宽和高的尺寸。

    (3)显示:使用imshow()函数来显示图像文件,为了同时显示不同窗口的多幅图像,使用figure()函数。

    (3)彩色图像灰度化:将3个通道(RGB)转换成1个通道,可以直接使用rgb2gray()函数。

    (4)保存: 使用函数imwrite()来写入图像文件。

  • 源代码:

    文件名:Homework1_1.m

    close all; 
    clear; 
    clc;
    img = imread('test.jpg');                 %读取test图片(为三通道彩色图片)
    figure,imshow(img),title('原图');          %显示原图hight=size(img,1);                         %获取图像高
    width=size(img,2);                         %获取图像宽
    rect = [width/4,hight/4,width/2,hight/2];  %设置参数,从1/4的x,y坐标开始延长1/2的宽高%即图像中心区域
    imgCut=imcrop(img,rect);                   %对图片img进行rect的参数裁剪,命名为imgCut
    imwrite(imgCut,'testCut.jpg')              %将灰度化后图片保存,命名为testCut.jpg
    figure,imshow(imgCut),title('裁剪后图');    %显示裁剪后的图片imgGray = rgb2gray(img);                   %RGB图片转换为灰度图片
    imwrite(imgGray,'testGray.jpg')            %将灰度化后图片保存,命名为testGray.jpg
    figure,imshow(imgGray),title('灰度化图');   %显示灰度化后的图片%显示在一个窗口 对比结果
    figure;
    subplot(1,3,1),subimage(img);
    title('原图');
    subplot(1,3,2),subimage(imgCut);
    title('裁剪后图');
    subplot(1,3,3),subimage(imgGray);
    title('灰度化图');
    
  • 结果:

    在这里插入图片描述

  • 分析:

    (1) 裁剪:一开始使用近似正方形比例的图片,实验结果不清晰,使自己反而开始对于宽高,长宽定义混淆。最后更换测试图片,验证。长宽即宽高。
    获得图像宽高,使用size()函数。size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数(高)或列数(宽)。
    参数格式为:rect[x,y,length,width]

    (2)对于图像灰度化:rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能。调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像I 。

    (3) 图片保存:使用函数imwrite()来写入图像文件。

    (4)显示:使用imshow()函数来显示图像文件。为方便观察实验结果最后将结果与原图放在一个窗口。用subplot()函数,该函数的语法形式为subplot(m,n,p)subplot(m n p)。其中,m表示图排成m行,n表示图排成n列,p表示图所在的位置,p=1表示从左到右、从上到下的第一个位置。

2. 图像采样与量化

2.2 利用求均值方法是实现4倍降采样

  • 编程思路:

    (1)用imread()函数将图像信息转化为矩阵信息进行保存,由于图像为RGB三色,所得到的信息是三维的,因此先使用rgb2gray()函数将图像转化为二维的灰度图。

    (2)[high,width]=size(a)读取图像像素,采样for循环,步长为2,将四个像素点的值求均值后赋值给新的图片,最后现实图像。

  • 源代码:

    文件名:Homework2_2.m

    %利用求均值方法实现4倍降采样
    close all; 
    clear; 
    clc;
    img=imread('学院.jpg');            %读取原图
    img=rgb2gray(img);                %转变为灰度化图像
    [h,w]=size(img);		          %获取高宽
    newImg=zeros((h+1)/2,w/2);        %新建一个长宽为原图一半的全零矩阵
    l=1;r=1;
    for i=1:2:h-1;                    %对原图行进行遍历,步长为2for j=1:2:w-1;                %对原图列进行遍历,步长为2newImg(l,r)=(img(i,j)+img(i+1,j)+img(i,j+1)+img(i+1,j+1))/4;r=r+1;endl=l+1;r=1;
    end
    newImg = uint8(newImg);           %图像矩阵变成uint8型
    figure;
    subplot(1,2,1),imshow(img),title('原图');
    subplot(1,2,2),imshow(newImg),title('4倍采样图');
    
  • 结果:
    在这里插入图片描述

  • 分析:

    (1)实验所得到的四倍降采样图片的像素数量是原图的1/4,因此需要将新图的宽高设置为原图的1/2。

    (2)求均值法实现降采样需要将原图临近的四块像素的灰度值求均值。使用for循环。

    (3)每步步长为2将原图依次遍历。

2.3 手动编写量化函数,将灰度级改为8

  • 编程思路:

    (1)首先用imread()函数将图像信息转化为矩阵信息进行保存,由于图像为RGB三色,所得到的信息是三维的,因此先使用rgb2gray()函数将图像转化为二维的灰度图。

    (2)通过灰度直方图得出灰度值范围,利用线性变换将其转换为灰度级为8的图像(灰度值为0-255)。

  • 源代码:

    文件名:Homework2_3.m

    %手动编写量化函数,将灰度级改为8
    close all; 
    clear; 
    clc;
    img=imread('学院.jpg');   %读取原图
    img=rgb2gray(img);        %转变为灰度化图像
    imged=img/7*(0+255/7);    %转变为灰度级为8的图像subplot(2,2,1),imhist(img),title('灰度直方图');
    subplot(2,2,2),imshow(img),title('原灰度图像');
    subplot(2,2,3),imhist(imged),title('灰度直方图');
    subplot(2,2,4),imshow(imged),title('灰度级为8');
    
  • 结果:

    在这里插入图片描述

  • 分析:

    关于灰度级:灰度值范围[Lmin,Lmax]内就有K个亮度值对应,称为灰度级K。为方便计算机处理,灰度级K一般以2的整数次幂表示,一般取K=256,表示共有256个灰度级。

    为了实现灰度级8的转变,因此需要8个亮度值,把0-255灰度值均匀分成2^3=8份,即为8个灰度级。第一区间赋值为0,第八区间赋值为255,中间区间以此类推。

    设灰度级为k,imged=img/(k-1)*(0+255/(k-1));

3. 图像变换

3.1 手写图像反转

  • 编程思路:

    (1)首先用imread()函数将图像信息转化为矩阵信息进行保存,由于图像为RGB三色,所得到的信息是三维的,因此先使用rgb2gray()函数将图像转化为二维的灰度图。

    (2)将图像转换为double型,图像反转线性变换后再将数据类型转换为uint8数据类型,显示图片。
    (3)灰度值为0-255,反转则为img1=255-img1

  • 源代码:

    文件名:Homework3_1.m

    %图像反转:手写
    close all; 
    clear; 
    clc;
    img=imread('学院.jpg');   %读取原图
    img=rgb2gray(img);        %转变为灰度化图像
    img1=double(img);         %图像矩阵变成double型
    img1=255-img1;            %图像反转
    img2=uint8(img1);         %图像矩阵变成uint8型
    subplot(1,2,1),imshow(img),title('原始灰度图像');
    subplot(1,2,2),imshow(img2),title('反转灰度图像');
    
  • 结果:
    在这里插入图片描述

  • 分析:

    图像反转,“白变黑,黑变白”,因为灰度值范围为0-255,反转则为:现值=255-原值。

3.2 非线性变换完成对数变换

  • 编程思路:

    (1)用imread()函数将图像信息转化为矩阵信息进行保存,由于图像为RGB三色,所得到的信息是三维的,因此先使用rgb2gray()函数将图像转化为二维的灰度图。

    (2)把二维的灰度图矩阵转换为double型之后进行对数变换,最后转换为uint8类型显示。

  • 源代码:

    文件名:Homework3_2.m

    %非线性变换:完成对数变换
    close all; 
    clear; 
    clc;
    img=imread('学院.jpg');   %读取原图
    img=rgb2gray(img);        %转变为灰度化图像
    img1=double(img);         %图像矩阵变成double型
    img2=46*log(img1+1);      %对数变换
    img2=uint8(img2);         %图像矩阵变成uint8型
    subplot(1,2,1),imshow(img),title('原始灰度图像');
    subplot(1,2,2),imshow(img2),title('对数变换图像');
    
  • 结果:

    在这里插入图片描述

  • 分析:

    原图经过非线性对数变换后,整体亮度变强。对数变换一般适用于处理过暗图像。

4. 直方图

4.1 完成清华大学出版社教材例5.6,5.7

  • 5.6 源代码:

    文件名:Homework4_1_6.m

    %5.6 直方图均衡化
    Image=rgb2gray(imread('img.jpg'));            %读取原图转变为灰度化图像
    histgram=imhist(Image);                       %统计图像直方图
    [h,w]=size(Image);
    NewImage=zeros(h,w);
    s=zeros(256); s(1)=histgram(1);
    for t=2:256  s(t)=s(t-1)+histgram(t);                   %计算新的灰度值
    end
    for x=1:wfor y=1:hNewImage(y,x)=s(Image(y,x)+1)/(w*h);   %生成新图像end
    end
    subplot(2,2,1),imshow(Image),title('couple灰度图像');
    subplot(2,2,2),imhist(Image),title('couple灰度图像的直方图');axis tight;
    subplot(2,2,3),imshow(NewImage),title('直方图均衡化处理后的图像');
    subplot(2,2,4),imhist(NewImage),title('直方图均衡化处理后的图像的直方图');axis tight;
  • 5.7 源代码:

    文件名:Homework4_1_7.m

    %5.7 局部直方图均衡化 
    Image=rgb2gray(imread('img.jpg'));               %读取原图转变为灰度化图像
    histgram=imhist(Image);                          %统计图像直方图
    [h,w]=size(Image);
    NewImage=zeros(h,w);
    s=zeros(256); s(1)=histgram(1);
    for t=2:256s(t)=s(t-1)+histgram(t);                     %计算新的灰度值
    end
    for x=1:wfor y=1:hNewImage(y,x)=s(Image(y,x)+1)/(w*h);     %生成新图像end
    end
    subplot(1,4,1),imshow(Image),title('couple灰度图像');
    subplot(1,4,2),imhist(Image),title('couple灰度图像的直方图');axis tight;
    subplot(1,4,3),imshow(NewImage),title('直方图均衡化处理后的图像');
    subplot(1,4,4),imhist(NewImage),title('直方图均衡化处理后的图像的直方图');axis tight;
    
  • 结果:

    (1)例5.6
    在这里插入图片描述

    (2)例5.7

    在这里插入图片描述

  • 分析:

    (1)图像直方图均衡化和局部均衡化,可使图像灰度级均衡平坦。

    (2)直方图均衡化:原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,增加许多图像的局部对比度,亮度可以更好的在直方图上分布。

    (3)局部直方图均衡化:也就是对一个像素周围的区域进行直方图均衡化,然后将结果返还给最中心的区域,需要自己确定模板的大小,一般都是奇数行,奇数列,运算时间较长,且模板越大,运算时间越长。

4.2 手写函数替换imhist()

  • 编程思路:

    可以用循环遍历图片的每个像素,求出每个灰度值出现的次数,最终进行统计展示。

  • 源代码:

    文件名:Homework4_2.m

    %手写imhist()
    close all; 
    clear; 
    clc;
    Image=rgb2gray(imread('学院.jpg')); %读取原图转变为灰度化图像
    n=256;
    k=256/n;
    histograms(n)=0;
    for i=1:1:na=size(find(Image<=k*i))-size(find(Image<=k*(i-1)));histograms(i)=a(1);
    end
    subplot(1,2,1),imhist(Image);title('imhist()直方图');axis tight;
    subplot(1,2,2),bar(0:k:n*k-1,histograms,'grouped');title('手写代码灰度分布直方图');axis tight;
    
  • 结果:

    在这里插入图片描述

  • 分析:

    (1)用循环遍历图片的每个像素,求出每个灰度值出现的次数,最终进行统计展示。

    (2)find函数返回原图I矩阵中等k值的下标,length计算下标的数量来表示频率.

5. 空域低通滤波

5.2 图像分别添加椒盐噪声与乘性噪声,手写实现3 * 3窗口均值滤波与中值滤波,并比交两种方法在不同噪声下的去噪效果。提示:嵌套使用for循环语句

  • 编程思路:

    (1)向灰度图像增加噪声。

    (2)获取图像高与宽,并新建新的图像矩阵,为了方便边界操作,将其高宽各增加2。

    (3)利用嵌套for循环对每一个像素点进行操作。

    (3)均值滤波:将该像素点周围包括其自己的3*3共九个灰度值求均值。

    ​ 中值滤波:将该像素点周围包括其自己的3*3共九个灰度值排序,取其均值。调用函数实现

  • 源代码:

    文件名:Homework5_2.m

    %图像分别添加椒盐噪声与乘性噪声
    %手写实现3 * 3窗口均值滤波与中值滤波
    close all; 
    clear; 
    clc;
    Image=rgb2gray(imread('img.jpg'));         %读取原图转变为灰度化图像
    ImageA1 = imnoise(Image,'speckle');        %加入乘性噪声,方差默认值
    ImageB1 = imnoise(Image, 'salt & pepper'); %加入椒盐噪声,噪声密度为0.02
    ImageA1 = double(ImageA1);
    ImageB1 = double(ImageB1);
    [h,w] = size(Image);
    ImageA2 = zeros(h+2, w+2);                 %乘性噪声均值滤波图像
    ImageA3 = zeros(h+2, w+2);                 %乘性噪声中值滤波图像
    ImageB2 = zeros(h+2, w+2);                 %椒盐噪声均值滤波图像
    ImageB3 = zeros(h+2, w+2);                 %椒盐噪声中值滤波图像for i=2:1:h-1for j=2:1:w-1% 均值滤波ImageA2(i,j)=(ImageA1(i-1,j-1)+ImageA1(i-1,j)+ImageA1(i,j-1)+ImageA1(i-1,j+1)+ImageA1(i+1,j-1)+ImageA1(i,j)+ImageA1(i,j+1)+ImageA1(i+1,j)+ImageA1(i+1,j+1))/9;ImageB2(i,j)=(ImageB1(i-1,j-1)+ImageB1(i-1,j)+ImageB1(i,j-1)+ImageB1(i-1,j+1)+ImageB1(i+1,j-1)+ImageB1(i,j)+ImageB1(i,j+1)+ImageB1(i+1,j)+ImageB1(i+1,j+1))/9;% 中值滤波ImageA3(i,j) = MedianFiltering(i,j,ImageA1); %跳转取中值的自定义函数:MedianFilteringImageB3(i,j) = MedianFiltering(i,j,ImageB1);end
    endsubplot(2,3,1),imshow(uint8(ImageA1)),title('加入乘性噪声后的图像');
    subplot(2,3,2),imshow(uint8(ImageA2)),title('乘性噪声均值滤波图像');
    subplot(2,3,3),imshow(uint8(ImageA3)),title('乘性噪声中值滤波图像');
    subplot(2,3,4),imshow(uint8(ImageB1)),title('加入椒盐噪声后的图像');
    subplot(2,3,5),imshow(uint8(ImageB2)),title('椒盐噪声均值滤波图像');
    subplot(2,3,6),imshow(uint8(ImageB3)),title('椒盐噪声中值滤波图像');
    

    文件名:MedianFiltering.m

    function mvalue = MedianFiltering(i,j,img)%将该像素周围3*3的灰度值存入一个数组x = [img(i-1,j-1),img(i-1,j),img(i-1,j+1),img(i,j-1),img(i,j),img(i,j+1),img(i+1,j-1),img(i+1,j),img(i+1,j+1)];y = sort(x);                            %将数组排序mvalue = y(4);                          %取中值
    end
    
  • 结果:

    在这里插入图片描述
    在这里插入图片描述

  • 分析:

    (1)椒盐噪声是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声是一种因为信号脉冲强度引起的噪声,椒盐噪声用中值滤波比较好。

    原因是:

    • 椒盐噪声是幅值近似相等但是随机的分布在不同位置,图中既有污染的点,也有干净的点。

    • 图中噪声的均值不为零,所以不适合均值滤波。

    • 图中有干净的点也有污染的点,所以中值滤波可以用干净的点代替污染的点。

    (2)乘性噪声一般由信道不理想引起的。它们与信号的关系是相乘,信号在,噪声在;信号不在,噪声也就消失。乘性随机性看成是系统的时变性或者非线性造成的。乘性噪声普遍存在于现实世界的图像应用当中。

    • 从实验结果看均值滤波与中值滤波效果大差不差。

    • 它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

  • 分析:

    (1)椒盐噪声是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声是一种因为信号脉冲强度引起的噪声,椒盐噪声用中值滤波比较好。

    原因是:

    • 椒盐噪声是幅值近似相等但是随机的分布在不同位置,图中既有污染的点,也有干净的点。

    • 图中噪声的均值不为零,所以不适合均值滤波。

    • 图中有干净的点也有污染的点,所以中值滤波可以用干净的点代替污染的点。

    (2)乘性噪声一般由信道不理想引起的。它们与信号的关系是相乘,信号在,噪声在;信号不在,噪声也就消失。乘性随机性看成是系统的时变性或者非线性造成的。乘性噪声普遍存在于现实世界的图像应用当中。

    • 从实验结果看均值滤波与中值滤波效果大差不差。

    • 它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。


http://chatgpt.dhexx.cn/article/7LaFF3oV.shtml

相关文章

图片标注问题image_caption

数据集&#xff1a; 数据集中的训练集使用的是coco train 2014&#xff0c;82783张图片&#xff0c;测试集使用的是 val 2017 &#xff0c;5000张图片,对应的caption是captions_train2014.json,和captions_val2017.json。 该文件中是以字典的形式包含其内容信息&#xff0c;key…

OpenCV —— 频率域滤波(傅里叶变换,低通和高通滤波,带通和带阻滤波,同态滤波)

频率域滤波 基本概念傅里叶变换二维离散的傅里叶变换快速傅里叶变换傅里叶幅度谱与相位谱谱残差显著性检测卷积与傅里叶变换的 频率域滤波低通滤波和高通滤波带通和带阻滤波同态滤波 基本概念 频率域滤波 —— 百度百科 频率域滤波是对图像进行傅里叶变换&#xff0c;将图像由…

基于matlab的数字图像基本处理运算

一、实验目的 &#xff08;1&#xff09;掌握线性拉伸和非线性拉伸的概念实现方法 &#xff08;2&#xff09;掌握图像代数运算的概念和实现方法 &#xff08;3&#xff09;掌握图像放大、缩小、平移、镜像、旋转原理和实现方法 &#xff08;4&#xff09;掌握最邻近插值和…

实验二 图像增强方法编程与应用

目录 一、实验目的 1. 理解常见图像增强方法的原理和特点&#xff1b; 2. 掌握常见的灰度线性和非线性变换方法&#xff1b; 3. 掌握直方图均衡增强的原理与应用方法&#xff1b; 4. 掌握模板卷积的概念、原理与实现方法 5. 掌握均值滤波的技术原理与实现方法&#xff1b…

PyTorch:tensor、torch.nn、autograd、loss等神经网络学习手册(持续更新)

PyTorch1&#xff1a;tensor2、torch.nn、autograd、loss等神经网络学习手册&#xff08;持续更新&#xff09; 链接&#xff1a;画图、读写图片 文章目录 一、tensor二、完整训练过程&#xff1a;数据、模型、可学习参数、保存与加载1、数据dataa、构建网络-数据b、补充知识&…

Android编译libjpeg-turbo so高效压缩图片

https://www.jianshu.com/p/8ebe0ddd21f7 https://www.jianshu.com/p/f305fb008ab6 一 . 图片的基本知识 图像是由像素组成的&#xff0c;而像素实际上是带着坐标的位置和颜色信息的。它是有若干行和若干列的点组成的&#xff0c;他们相交就会有无数个点。假如我们随便取出一个…

(数字图像处理MATLAB+Python)第二章数字图像处理基础-第三、四节:数字图像的生成和数值描述

文章目录 一&#xff1a;数字图像的生成与表示&#xff08;1&#xff09;图像信号的数字化&#xff08;2&#xff09;数字图像类型 二&#xff1a;数字图像的数值描述&#xff08;1&#xff09;常用坐标系&#xff08;2&#xff09;数字图像的数据结构&#xff08;3&#xff09…

MATLAB GUI设计 图像处理基本操作(二)

一、直方图及直方图均衡化 直方图是从图像灰度图中提取的亮度信息&#xff0c;包含灰度级和像素数&#xff0c;对于uint8图像其灰度级为0~255&#xff08;2^8256&#xff09;&#xff0c;用imhist&#xff08;&#xff09;函数显示。imhist&#xff08;&#xff09;/numel可获…

ff

文章目录 1.变数与变量存档1.1变量类型转换1.1.1语法说明1.1.2单一字元1.1.3多元字元1.1.3.1说明1.1.3.2创建对象1.1.3.3逻辑运算和分配 1.2结构体1.2.1存储异构数据的方法1.2.2向结构添加信息2.2.2.1延伸拓展 1.3结构功能1.3.1功能基础语法1.3.2功能语法举例 1.4嵌套结构1.5元…

数字图像处理学习笔记 四 傅里叶变换和频率域滤波

目录 一 预备知识&#xff1a;傅里叶级数的介绍 1、一维傅里叶变换数学推导 2、图像傅里叶变换的物理意义 3、二维傅里叶变换 二、频率域滤波 1、频率域与空间域之间的关系 2、频率域滤波的基本步骤 3、使用频率域滤波平滑图像 4、使用频率域滤波锐化图像 5、选择率滤波…

第五章 DirectX 光照,材质和纹理(下)

在计算机三维世界中&#xff0c;想要模拟出真实的物体&#xff0c;让它的表面看起来更加逼真&#xff0c;就需要使用“纹理映射”技术&#xff0c;简单讲就是一种将2D图像映射到3D物体上面。一般来说&#xff0c;纹理是表示物体表面细节的一幅或多幅2D图像&#xff0c;也称为纹…

数组属性和基本操作

数组属性和基本操作 np.arange(start150,stop0,step-1) 将值倒过来 import numpy as np #matplotlib画图的&#xff0c;也可以读取图片 import matplotlib.pyplot as plt np.arange(150, 1, step-1) 输出 array([150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 1…

灰度增强和去噪

futurehello博客 http://blog.csdn.net/xixi_0921/article/details/50533487 整理笔记 一、前言 图像的灰度变换则不同&#xff0c;其对像素的计算仅仅依赖于当前像素和灰度变换函数。 灰度变换也被称为图像的点运算&#xff08;只针对图像的某一像素点&#xff09;是所有图…

Chapter_06 更改图像的对比度和亮度

文章目录 一. 本章目标① 目标② 理论③ 代码 二. 实例① 亮度和对比度调整② 伽马校正③ 纠正曝光不足的图像 三. 图形渲染中的伽马校正(附加资源) 一. 本章目标 ① 目标 本教程中我们将学习如何: 访问像素值用零初始化矩阵学习cv::saturate_cast是做什么的,以及它有什么用获…

MATLAB和Intislim,matlab灰阶变换函数imadjust和stretchlim的c++实现

灰阶变换 首先介绍一下灰阶变换&#xff0c;一幅图像数据本身在存储的数据结构上为一个二维的矩阵&#xff0c;即一幅图像为m*n个密密麻麻的像素点构成。 image.png 然后&#xff0c;这些像素点有着一个值&#xff0c;这个值成为灰度值或者亮度值&#xff0c;值的范围为[0,255]…

一个app开发周期是多久?快速开发才是主流

app的出现&#xff0c;极大的方便了人们的生活、社交和工作&#xff0c;各种各样的app为人们提供了各种便利的服务&#xff0c;真正让移动互联网服务大众。许多行业看到在app上爆发出的巨大潜能&#xff0c;都纷纷主动进行app制作来迎接移动互联网浪潮。 开发app一个很重的问题…

如何开发app软件?程序员揭秘你还没听过的1种方法

如何开发app软件&#xff1f;app软件开发需要多少钱&#xff1f;现在手机app这么火&#xff0c;很多企业都想开发一个app软件开拓市场。但是在开发app的时候往往会感觉力不从心&#xff0c;因为app开发门槛比较高&#xff0c;大家对app软件开发需要的技术、成本并不了解。 现…

商城APP软件开发要素有哪些

商城APP软件体系是当今电商行业经常会运用的商城体系&#xff0c;既支撑企业对企业的运营形式&#xff0c;也支撑卖家对消费者的运营形式&#xff0c;便是现在常见的B2C&#xff0c;B2B的电商形式APP&#xff0c;跟着现在的互联网的遍及现在这些电商都是成为了电商商家开展的不…

app软件怎么开发 盘点3种app制作方式

现在智能手机给大家的生活带来了很多便利&#xff0c;利用手机&#xff0c;随时随地看新闻、手机打车提前预定、网上订餐不用等、商家服务提前预约、学习内容随时看、购物更是随时买。各式各样的手机App&#xff0c;让生活方式方式了重大改变。 1、组建团队开发APP 自己有团队…

app应用软件开发流程是怎样的?

从入职这行业到创业已有 7 载&#xff0c;对 APP 产品开发的流程已经再熟悉不过了&#xff0c;现在把这几年积累的一些经验和大家分享一下&#xff0c;一个产品是怎么从想法一步一步落地为具体成品的&#xff0c;这个过程中会经历一些怎样的必要流程呢&#xff0c;下面大致说一…