图像处理线性变换函数_matlab 分段线性变换 图像中函数分段点如何确定 - CSDN
  • 线性变换是灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度从而达到图像增强的目的。  其公式可以表示为y(x, y) = k * x(x, y) + b;其中y(x, y)表示目标像素值,x(x, y)表示源像素值,k表示...
    线性变换是灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度从而达到图像增强的目的。
    

         其公式可以表示为y(x, y) = k * x(x, y) + b;其中y(x, y)表示目标像素值,x(x, y)表示源像素值,k表示斜率,b表示截距。 

        1)当k>1时,可用于增加图像的对比度。图像的像素值在变换后全部增大,整体显示效果被增强。

        2)当k=1时,常用于调节图像亮度。

        3)当0<k<1时,效果与k>1时刚刚相反,图像的对比度和整体效果都被削弱。

        4)当k<0时,源图像较亮的区域变暗,而较暗的区域会变亮。此时可以使函数中的k=-1,d=255让图像实现反色效果。

         代码如下:

    1. /******************************************************************************    
    2. *   作用:     线性变换函数
    3. *   参数: pDst     输出图像的像素数组
    4. *   参数: pSrc     原始图像的像素数组
    5. *   参数: nWidth   原始图像宽度
    6. *   参数: nHeight  原始图像高度
    7. *   参数: slope      线性函数的斜率
    8. *   参数: inter      线性函数的截距
    9. *   备注: 此函数对于彩色图同样适用
    10. ******************************************************************************/ 
    11. int LineTrans(BYTE* pDst, BYTE* pSrc, int nWidth, int nHeight, double slope, double inter) 
    12.     if (!pSrc || !pDst) 
    13.     { 
    14.         return EXIT_FAILURE; 
    15.     } 
    16.  
    17.     // 灰度映射表 
    18.     BYTE map[256]; 
    19.  
    20.     // 保存运算后的临时值 
    21.     double dTemp; 
    22.     int i, j; 
    23.     for (i = 0; i < 256; i++) 
    24.     { 
    25.         // 计算当前像素变换后的值 
    26.         dTemp = slope * i + inter; 
    27.  
    28.         // 如果超界则修改其值 
    29.         if (dTemp < 0) 
    30.             dTemp = 0.0; 
    31.         else if (dTemp > 255) 
    32.             dTemp = 255; 
    33.  
    34.         // 四舍五入 
    35.         map[i] = int(dTemp + 0.5); 
    36.     } 
    37.  
    38.     // 线性变换后的值直接在映射表中查找 
    39.     for (i = 0; i < nWidth * nHeight; i++) 
    40.     {    
    41.         for (j = 0; j < 4; j++) 
    42.             pDst[i*4 + j] = map[pSrc[i*4 + j]]; 
    43.     } 
    44.     return EXIT_SUCCESS; 

      

    展开全文
  • 图像灰度线性变换 文章目录1 概念2 原理3 作用4 Matlab实现5 OpenCV实现6 效果图6.1 效果图7 讨论 1 概念   灰度线性变换是一种灰度变换,通过建立灰度映射来调整源图像的灰度,达到图像增强的目的。灰度映射...

    图像灰度线性变换

    1 概念

      灰度线性变换是一种灰度变换,通过建立灰度映射来调整源图像的灰度,达到图像增强的目的。灰度映射通常使用灰度变换曲线来表示。

    2 原理

      灰度线性变换就是将图像的像素值通过指定的线性函数进行变换,以此增强或减弱图像的灰度。灰度线性变换的公式是常见的一维线性函数:
    g(x,y)=kf(x,y)+b g(x,y) = k \cdot f(x,y) + b
    xx为原始灰度值,则变换后的灰度值yy为:
    y=kx+b(0y255) y = k \cdot x + b \dots\dots(0 \leq y \leq 255)
    kk表示直线的斜率,即倾斜程度,bb表示线性函数在yy轴的截距。

    3 作用

      

    kk bb取值 意义
    k&gt;1k&gt;1 增大图像的对比度,图像的像素值在变换后全部增大,整体效果被增强
    k=1k=1 通过调整bb,实现对图像亮度的调整
    0&lt;k&lt;10 &lt; k &lt; 1 图像的对比度被削弱
    k&lt;0k&lt;0 原来图像亮的区域变暗,原来图像暗的区域变亮

    4 Matlab实现

    clc;
    clear;
    close all;
    
    % 对灰度图进行灰度线性变换
    ori_img = imread('../images/6.jpg');
    ori_img = rgb2gray(ori_img);
    [oriHist,oriX] = imhist(ori_img);
    
    k = 1.25;
    d = 0;
    gray1 = ori_img * k + d;
    [g1Hist,g1X] = imhist(gray1);
    
    k = 1;
    d = 50;
    gray2 = ori_img * k + d;
    [g2Hist,g2X] = imhist(gray2);
    
    k = 0.5;
    d = 0;
    gray3 = ori_img * k + d;
    [g3Hist,g3X] = imhist(gray3);
    
    k = -1;
    d = 255;
    ori_ = im2double(ori_img);
    gray4 = ori_ * k + 1.0;
    [g4Hist,g4X] = imhist(gray4);
    
    figure(1),subplot(1,2,1),imshow(ori_img),title('原图');subplot(1,2,2),imshow(gray1),title('k>0 d=0');
    figure(2),subplot(1,2,1),stem(oriX,oriHist),title('原图直方图');subplot(1,2,2),stem(g1X,g1Hist),title('k>0 d=0直方图');
    figure(3),subplot(1,2,1),imshow(ori_img),title('原图');subplot(1,2,2),imshow(gray2),title('k=1 d=50');
    figure(4),subplot(1,2,1),stem(oriX,oriHist),title('原图直方图');subplot(1,2,2),stem(g2X,g2Hist),title('k=1 d=50直方图');
    figure(5),subplot(1,2,1),imshow(ori_img),title('原图');subplot(1,2,2),imshow(gray3),title('k=0.5 d=0');
    figure(6),subplot(1,2,1),stem(oriX,oriHist),title('原图直方图');subplot(1,2,2),stem(g3X,g3Hist),title('k=0.5 d=0直方图');
    figure(7),subplot(1,2,1),imshow(ori_img),title('原图');subplot(1,2,2),imshow(gray4),title('k=-1 d=255');
    figure(8),subplot(1,2,1),stem(oriX,oriHist),title('原图直方图');subplot(1,2,2),stem(g4X,g4Hist),title('k=-1 d=255直方图');
    

    5 OpenCV实现

    #include <iostream>
    #include <string>
    
    #include "../include/opencv400/opencv2/opencv.hpp"
    #include "windows.h"
    
    std::string g_CurrentDirectory;
    void SetCurrentDirectoryToExePath()
    {
    	HMODULE hExe = GetModuleHandleA(NULL);
    	char nameBuf[MAX_PATH] = { 0 };
    	GetModuleFileNameA(hExe, nameBuf, MAX_PATH);
    	std::string sName(nameBuf);
    	sName = sName.substr(0, sName.rfind('\\'));
    	SetCurrentDirectoryA(sName.c_str());
    	g_CurrentDirectory = sName;
    }
    
    
    void calcHist1D(cv::Mat& input, cv::Mat& output)
    {
    	int channels[] = { 0 };
    	int histsize[] = { 256 };
    	float grayRnage[] = { 0,256 };
    	const float* ranges[] = { grayRnage };
    	cv::MatND hist;
    	cv::calcHist(&input, 1, channels, cv::Mat(), hist, 1, histsize, ranges);
    
    	double maxVal = 0;
    	cv::minMaxLoc(hist, 0, &maxVal, 0, 0);
    
    	int scale = 10;
    	output = cv::Mat::zeros(500, 257 * 5, CV_8UC3);
    
    	std::cout << "-----------------------------------" << std::endl;
    	for (int i = 0; i < histsize[0]; i++)
    	{
    		float binVal = hist.at<float>(i, 0);
    		std::cout <<i <<" "<< binVal << std::endl;
    		int intensity = cvRound(binVal * 500 / maxVal);
    		rectangle(output, cv::Point(i * 5, 500 - intensity),
    			cv::Point((i + 1) * 5, 500),
    			cv::Scalar::all(255),
    			-1);
    	}
    
    }
    
    int main()
    {
    	SetCurrentDirectoryToExePath();
    
    	cv::Mat ori_img = cv::imread("../images/6.jpg");
    	cv::Mat gray_img;
    	cv::cvtColor(ori_img, gray_img, cv::COLOR_BGR2GRAY);
    	//gray_img.convertTo(gray_img, CV_32FC1, 1.0 / 255);
    	cv::namedWindow("灰度图");
    	cv::imshow("灰度图", gray_img);
    
    	cv::Mat grayHist;
    	calcHist1D(gray_img, grayHist);
    	cv::imshow("hist", grayHist);
    
    	float k = 1.25;
    	int d = 0;
    	cv::Mat g1 = gray_img * k + d;
    	cv::Mat g1Hist;
    	calcHist1D(g1, g1Hist);
    	cv::imshow("g1", g1);
    	cv::imshow("g1Hist", g1Hist);
    
    	k = 1;
    	d = 30;
    	cv::Mat g2 = gray_img * k + d;
    	cv::Mat g2Hist;
    	calcHist1D(g2, g2Hist);
    	cv::imshow("g2", g2);
    	cv::imshow("g2Hist", g2Hist);
    
    	k = 0.5;
    	d = 0;
    	cv::Mat g3 = gray_img * k + d;
    	cv::Mat g3Hist;
    	calcHist1D(g3, g3Hist);
    	cv::imshow("g3", g3);
    	cv::imshow("g3Hist", g3Hist);
    
    	k = -1;
    	d = 255;
    	cv::Mat g4 = gray_img * k + d;
    	cv::Mat g4Hist;
    	calcHist1D(g4, g4Hist);
    	cv::imshow("g4", g4);
    	cv::imshow("g4Hist", g4Hist);
    
    	cv::waitKey();
    	return 0;
    }
    
    

    6 效果图

    原图
    在这里插入图片描述

    6.1 效果图

    k> 1 b=0
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    7 讨论

    线性变换是一个有限的查表操作,在C++实现时可以在将图像逐像素的计算过程转换为查表操作。由于灰度线性变换的查找表只需256字节,完全可以全部缓存到现代CPU的cache中,通过多线程的查表操作,可以加快整个图像的变换过程。当然,这样速度还是没有GPU中进行速度快。灰度线性变换是与相邻像素无关的操作,非常适合在GPU中并行计算。但需要根据图像大小,考虑图像从CPU到GPU再从GPU到CPU的时间损耗,时间加快只对很大的图有效。

    展开全文
  • 线性灰度变换函数是一个线性函数:B=f(A)=aA+c.其中A为输入图像灰度值,B为输出图像灰度,a为线性函数的斜率,c为在Y轴的截距。 当a>1时,输入图像的对比度将增大,当a<1时,输出图像的对比度将减小; 当a=1时...

    一.理论基础
    线性灰度变换函数是一个线性函数:B=f(A)=aA+c.其中A为输入图像灰度值,B为输出图像灰度,a为线性函数的斜率,c为在Y轴的截距。
    当a>1时,输入图像的对比度将增大,当a<1时,输出图像的对比度将减小;
    当a=1时且c≠0时,c的变换仅使所有的灰度值上移或者下移,其效果使整个图像更暗或更亮,
    当a<0时暗区域将变亮,亮区域将变暗。这种线性变换可能由于像素达到饱和(小于0或者超过255)从而丢失一部分细节;
    特殊情况a=1,c=0输入图像和输出图像相同;a=-1,c=255输出图像的灰度正好反转。

    二.matlab实现:

    %读入原图像
    I=imread('coins.png');%读入原图像
    I=im2double(I);%转换数据类型为double
    [M,N]=size(I);
    figure(1);
    subplot(2,3,1);
    imshow(I);%显示原图像
    title('原图像');
    %原图像灰度直方图
    figure(2);
    subplot(2,3,1);
    [H,x]=imhist(I,64);%计算64个区间的灰度直方图
    stem(x,H/M/N,'.');%显示原图像的直方图
    title('原图像','fontsize',8);
    %增加对比度
    Fa=2;Fb=-55;
    O=Fa.*I+Fb/255;
    figure(1);
    subplot(2,3,2);
    imshow(O);
    title('Fa=2 Fb=-55 增加对比度','fontsize',8);
    figure(2)
    subplot(2,3,2);
    [H,x]=imhist(O,64);
    stem(x,H/M/N,'.');
    title('Fa=2 Fb=-55 增加对比度','fontsize',8);
    %减小对比度
    Fa=0.5;Fb=-55;
    O=Fa.*I+Fb/255;
    figure(1);
    subplot(2,3,3);
    imshow(O);
    title('Fa=0.5 Fb=-55 减小对比度','fontsize',8);
    figure(2)
    subplot(2,3,3);
    [H,x]=imhist(O,64);
    stem(x,H/M/N,'.');
    title('Fa=0.5 Fb=-55 减小对比度','fontsize',8);
    %线性增加亮度
    Fa=1;Fb=55;
    O=Fa.*I+Fb/255;
    figure(1);
    subplot(2,3,4);
    imshow(O);
    title('Fa=1 Fb=55 线性平移增加亮度','fontsize',8);
    figure(2)
    subplot(2,3,4);
    [H,x]=imhist(O,64);
    stem(x,H/M/N,'.');
    title('Fa=1 Fb=55 线性平移增加亮度','fontsize',8);
    %线性减小亮度
    Fa=1;Fb=-55;
    O=Fa.*I+Fb/255;
    figure(1);
    subplot(2,3,5);
    imshow(O);
    title('Fa=1 Fb=-55 线性平移减小亮度','fontsize',8);
    figure(2)
    subplot(2,3,5);
    [H,x]=imhist(O,64);
    stem(x,H/M/N,'.');
    title('Fa=1 Fb=55 线性平移减小亮度','fontsize',8);
    %反向显示
    Fa=-1;Fb=255;
    O=Fa.*I+Fb/255;
    figure(1);
    subplot(2,3,6);
    imshow(O);
    title('Fa=-1 Fb=255 反向显示','fontsize',8);
    figure(2)
    subplot(2,3,6);
    [H,x]=imhist(O,64);
    stem(x,H/M/N,'.');
    title('Fa=-1 Fb=255 反向显示','fontsize',8);
    

    三.运行结果:

    在这里插入图片描述这幅图结合理论基础发现斜率影响图像的对比度,截距印象图像的亮度,斜率的正负会使灰度反转。
    在这里插入图片描述
    这副图结合上图我们主要来分析一下从直方图中获得的信息:
    灰度值分布集中且只占一小部分则图像对比度低(观察图一3和图二3)
    灰度值分布较均匀且值较平均则图像对比度高(观察图一2和图二2)
    灰度值分布的峰值位置代表的图像的亮度,越靠右侧图像越亮,反之越暗(对比图一4和5,图二4和5)

    四。总结
    线性变换斜率影响对比度,截距影响图像的亮度。

    展开全文
  • 1、分段线性变换各种情况的变换效果对比 2、对数、指数变换、取反等多种非线性变换的效果对比 变换结果与分析 分段线性变换 1)变换函数 2)分段线性变换结果 3)分段线性变换对比分析 通过变换,将灰度...

    变换目标

    1、分段线性变换各种情况的变换效果对比
    2、对数、指数变换、取反等多种非线性变换的效果对比

    变换结果与分析

    分段线性变换
    1)变换函数
    在这里插入图片描述
    2)分段线性变换结果
    在这里插入图片描述
    3)分段线性变换对比分析
    通过变换,将灰度值小于82的变小,将灰度值大于173的增大,处于82与173之间的被拉伸。
    对数变换
    1)变换函数

    在这里插入图片描述
    2)对数变换结果
    在这里插入图片描述
    3)对数变换分析
    低灰度值区域被拉伸,高灰度值区域被缩小,常数c越大,图像灰度值越集中于255,常数c越接近0,图像灰度值越接近于0.
    指数变换
    1)变换函数
    在这里插入图片描述
    2)指数变换结果
    在这里插入图片描述
    3)指数变换分析:
    当指数大于1,图像灰度值减小,当指数小于1大于0,回想灰度值增大。
    取反变换
    1)取反变换函数
    在这里插入图片描述
    2)取反变换结果
    在这里插入图片描述
    3)取反变换对比分析
    增强了图像暗色区域中的白色或灰色细节,特别是黑色面积在尺寸上占主导地位的时候,效果逐渐明显。

    代码

    分段线性变换

    %Write  by 长安 Rjex
    %分段线性变换各种情况的变换效果对比
    %name为图像文件名,(r1,s1),(r2,s2)为变换点
    function B = pielinear(name,r1,s1,r2,s2)I = imread(name); 
    if r1>r2||s1>s2
       error(message('MATLAB:pieLinear:invalidCoordinate'))
    end 
    A=rgb2gray(I);B = A; %确定分段函数方程
    syms k b;
    [k1,b1] =solve([k*r1+b==s1, 0*k+b==0], k,b);
    [k2,b2] =solve([k*r2+b==s2, k*r1+b==s1], [k,b]);
    [k3,b3] =solve([k*r2+b==s2, k*255+b==255], [k,b]); %符号变量转换成数值常量
    k1 = double(k1);
    k2 = double(k2);
    k3 = double(k3);
    b1 = double(b1);
    b2 = double(b2);b3 = double(b3); %分段线性变换
    for i = 1 : size(A,1)
        for j = 1 : size(A,2)    
            if A(i,j)<=r1       
                 B(i,j) = double(A(i,j))*k1+b1; %此处须将A浮点化,否则对A的算术运算范围为0~255        
            elseif 
                 A(i,j)>r1&&A(i,j)<=r2            
                 B(i,j) = double(A(i,j))*k2+b2;        
             else            
                 B(i,j) = double(A(i,j))*k3+b3;        
             end    
         end
    end %原图与对比度拉伸后的图像
    
    figure(1);
    subplot(2,2,1),imshow(A),title('(a)原始图像');
    subplot(2,2,2),imhist(A),title('(b)原始直方图');
    subplot(2,2,3),imshow(B),title('(c)分段线性变换后的图像');
    subplot(2,2,4),imhist(B),title('(d)分段线性变换后的直方图'); %分段函数的表示
    
    figure(2);
    x=0:1:255;y=(k1*x+b1).*(x>=0&x<=r1)+(k2*x+b2).*(x>r1&x<=r2)+(k3*x+b3).*(x>r2&x<=255);plot(x,y);axis([0 255 0 255]),title('分段函数'),xlabel('r'),ylabel('T(r)'); 

    反转(取反)变换

    %Write  by 长安 Rjex
    %图像反转的变换效果对比%name为图像文件名
    function B = negatrans(name)I = imread(name);
    A=rgb2gray(I);
    B = A; %图像反转
    for i = 1 : size(A,1)
        for j = 1 : size(A,2)      
              B(i,j) = 255-double(A(i,j));
               %此处须将A浮点化,否则对A的算术运算范围为0~255    
        end
    end %原图与图像反转后的图像
    
    figure(1);
    subplot(2,2,1),imshow(A),title('(a)原始图像');
    subplot(2,2,2),imhist(A),title('(b)原始直方图');
    subplot(2,2,3),imshow(B),title('(c)反转后的图像');
    subplot(2,2,4),imhist(B),title('(d)反转后的直方图'); %反转函数的表示
    
    figure(2);
    x=0:1:255;y=255-x;plot(x,y),axis([0 255 0 255]),title('反转函数'),xlabel('r'),ylabel('T(r)'); 

    对数变换

    %Write  by 长安 Rjex
    %对数变换各种情况的变换效果对比%name为图像文件名,c为对数变换中的常数,即:clog(r+1)
    function B = logtrans(name,c)I = imread(name); 
    A=rgb2gray(I);B = A; %对数变换
    for i = 1 : size(A,1)
        for j = 1 : size(A,2)       
             B(i,j) = c*log(double(A(i,j))+1); %此处须将A浮点化,否则对A的算术运算范围为0~255    
        end
    end %原图与对数变换后的图像
    
    figure(1);
    subplot(2,2,1),imshow(A),title('(a)原始图像');
    subplot(2,2,2),imhist(A),title('(b)原始直方图');
    subplot(2,2,3),imshow(B),title('(c)对数变换后的图像');
    subplot(2,2,4),imhist(B),title('(d)对数变换后的直方图'); %对数函数的表示
    
    figure(2);
    x=0:1:255;y=c*log(x+1);plot(x,y);axis([0 255 0 255]),title('对数函数'),xlabel('r'),ylabel('T(r)'); 

    指数变换

    %Write  by 长安 Rjex
    %指数变换各种情况的变换效果对比%name为图像文件名
    function B = indextrans(name,c,r)
    I = imread(name); 
    A=rgb2gray(I);B = A; %指数变换
    for i = 1 : size(A,1)
        for j = 1 : size(A,2)       
             B(i,j) = (double(A(i,j))^r.*c)/(255^r)*255; %此处须将A浮点化,否则对A的算术运算范围为0~255    
        end
    end %原图与指数变换后的图像
    
    figure(1);
    subplot(2,2,1),imshow(A),title('(a)原始图像');
    subplot(2,2,2),imhist(A),title('(b)原始直方图');
    subplot(2,2,3),imshow(B),title('(c)指数变换后的图像');
    subplot(2,2,4),imhist(B),title('(d)指数变换后的直方图'); %指数函数的表示
    
    figure(2);
    x=0:1:255;y=(x.^r.*c)/(255^r)*255;plot(x,y);axis([0 255 0 255]),title('指数函数'),xlabel('r'),ylabel('T(r)');
    展开全文
  • 前一篇文章讲解了图像灰度化处理线性变换知识,结合OpenCV调用cv2.cvtColor()函数实现图像灰度操作,本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包括对数变换和伽马变换。本文主要讲解灰度...
  • 前一篇文章讲解了图像灰度化处理的知识,结合OpenCV调用cv2.cvtColor()函数实现图像灰度操作,使用像素处理方法对图像进行灰度化处理。本文主要讲解灰度线性变换,基础性知识希望对您有所帮助。 1.图像灰度上移变换...
  • 图像线性变换,是比较容易理解的。由线性变换公式y=kx+b知道,图像的像素点灰度值为x,经由线性变换输出y再替换掉原像素点的灰度值x实现映射。其作用是当图像像素的灰度值集中在一定范围如[a,b]时,可以经由线性...
  • 实验内容及实验原理:1、灰度的线性变换灰度的线性变换就是将图像中所有的点的灰度按照线性灰度变换函数进行变换。该线性灰度变换函数是一个一维线性函数:f(x)=a*x+b其中参数a为线性函数的斜率,b为线性函数的在y轴...
  • 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境。灰度线性变换和灰度拉伸是对像素灰度值的变换操作,直方图是对像素灰度值的统计,直方图均衡是对灰度值分布的变换
  • 灰度变换图像增强的一种重要手段,用于改善图像显示效果,属于空间域处理方法,它可以使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。灰度变换其实质就是按一定的规则修改图像每一个像素的...
  • 承接上一篇博客,接下来实现以下灰度图像的线性拉伸变换,具体理论就不赘述了,...然后为菜单创建消息响应函数,右键灰度线性变换,选择ClassWizard,创建单击事件函数: 确定,点击EditCode后发现有View.cp
  • 本文详细 介绍-图像线性变换算法及实现,并给出了一份完整程序DEMO下载链接,跟大家分享一下,希望大家喜欢!
  • 图像灰度非线性变换 文章目录1 原理2 Matlab实现3 OpenCV实现3.1 实现3.2 注意4 效果图 1 原理   图像灰度的非线性变换主要有对数变换、指数变换、幂次变换等。本文主要讨论对数变换。   对数变换的基本形式...
  • 转自https://blog.csdn.net/eastmount/article/details/46312145本文主要讲述基于VC++6.0 ...包括图像灰度线性变换、灰度非线性变换图像阈值化处理图像均衡化处理等知识,并结合前一篇论文灰度直方图进行展示 。...
  • 灰度变换法:  一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为...灰度变换法又可分为三种:线性分段性及分线性变换。 (1)线性变换  假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)
  • 图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注! 图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",...
  • 数字图像处理数字图像处理-灰度变换与空间滤波(一)背景知识(二)灰度变换函数1.imadjust函数(三)直方图处理与函数绘图(四)在频率域中直接生成滤波器(五)高通(锐化)频域滤波器(六)选择性滤波(七)小结...
  • 1.根据图像线性变换处理的方法和流程,利用matlab编写图像线性变换处理的程序; 2.给定一幅BMP图像,用所编程序对给定图像进行操作,对图像处理后另存为(*.bmp)文件, I = imread('lena512.bmp'); I = ...
  • 本文主要包括以下内容 分段线性变换 两种实用的直方图修正技术:直方图... 利用分段线性变换函数来增强图像对比度的方法实际是增强原图各部分的反差,即增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区
1 2 3 4 5 ... 20
收藏数 36,353
精华内容 14,541
关键字:

图像处理线性变换函数