精华内容
下载资源
问答
  • 计算图像对比度

    2018-10-28 22:16:11
    用MATLAB计算图像对比度的程序。包括4邻域和8邻域两种方法。还有计算对比度的算法文档。
  • 图像处理:Python代码计算图像对比度

    千次阅读 热门讨论 2019-04-28 22:14:17
    图像对比度理论知识 1 定义 对比度:通俗地讲就是亮暗的拉伸对比程度,通常表现了图像画质的清晰程度。对比度的计算公式如下: 2 计算案例 解释一下最后的48是怎么来的:其实就是总的平方次数 二 代码实现 from...

    一 图像对比度理论知识

    1 定义

    对比度:通俗地讲就是亮暗的拉伸对比程度,通常表现了图像画质的清晰程度。对比度的计算公式如下:
    在这里插入图片描述

    2 计算案例

    在这里插入图片描述
    解释:

    1. 每个小括号的数据是怎么来的?按四近邻计算,比如第一个小括号:以第一行第一列为中心,上下左右分别与这个中心值相减再平方,然后加在一起,即:(2-1)2+(3-1)2;第二个小括号即:(1-3)2+(9-3)2+(1-3)2
    2. 最后的48是怎么来的:其实就是总的平方次个数

    二 代码实现

    '''上面案例和下面代码都是使用四近邻方式计算'''
    from cv2 import cv2
    import numpy as np
    def contrast(img0):   
        img1 = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY) #彩色转为灰度图片
        m, n = img1.shape
        #图片矩阵向外扩展一个像素
        img1_ext = cv2.copyMakeBorder(img1,1,1,1,1,cv2.BORDER_REPLICATE) / 1.0   # 除以1.0的目的是uint8转为float型,便于后续计算
        rows_ext,cols_ext = img1_ext.shape
        b = 0.0
        for i in range(1,rows_ext-1):
            for j in range(1,cols_ext-1):
                b += ((img1_ext[i,j]-img1_ext[i,j+1])**2 + (img1_ext[i,j]-img1_ext[i,j-1])**2 + 
                        (img1_ext[i,j]-img1_ext[i+1,j])**2 + (img1_ext[i,j]-img1_ext[i-1,j])**2)
    
        cg = b/(4*(m-2)*(n-2)+3*(2*(m-2)+2*(n-2))+2*4) #对应上面48的计算公式
        print(cg)
       
    img0 = cv2.imread('1301022016GF2DOM_2535_5118_0_copy1.jpg')
    contrast(img0)
    img1 = cv2.imread('1301022016GF2DOM_2535_5118_0_copy2.jpg')
    contrast(img1)
    img2 = cv2.imread('1301022016GF2DOM_2535_5118_0_copy3.jpg')
    contrast(img2)
    img3 = cv2.imread('1301022016GF2DOM_2535_5118_0_copy4.jpg')
    contrast(img3)
    

    结果如下(供参考):
    13.12
    15.19
    16.24
    18.21
    结论:图片越清晰,对比度越大

    使用如下图片(因为下面图片大小被压缩,所以计算结果可能不一致,但大小顺序一致)
    在这里插入图片描述=在这里插入图片描述=在这里插入图片描述=在这里插入图片描述

    展开全文
  • 当r=1时,图像不变,如果图像整体或者感兴趣区域较暗,则令0,可以增加图像对比度, 相反,如果图像整体或者感兴趣区域较亮,则令r>1可以降低图像对比度。 综上: 1、对图像进行伽马变换时,首先将灰度值转化到[0...

    1、灰度直方图

     

    #灰度直方图
    import numpy as np
    import matplotlib.pyplot as plt
    import cv2
    import sys
    
    def calGrayHist(img):
        rows,cols=img.shape[:2]
        cnt=np.zeros([256],dtype=np.uint32)
        for i in range(rows):
            for j in range(cols):
                cnt[img[i][j]]+=1
        return cnt
    if __name__=="__main__":
        img=cv2.imread("1.jpg")
        grayHist=calGrayHist(img)
        cv2.imshow('1',img)
        cv2.waitKey(2000)
        xrange=range(256)
        plt.plot(xrange,grayHist,'+',linewidth=2,c='green')
        y_maxValue=np.max(grayHist)
        print(y_maxValue)
        plt.axis([0,255,0,y_maxValue])
        plt.xlabel('gray Level')
        plt.ylabel('number of pixels')
        plt.show()
    #Matplotlib 自带的库
    import sys
    import numpy as np
    import matplotlib.pyplot as plt
    from cv2 import *
    
    if __name__=="__main__":
        img=imread("1.jpg",IMREAD_GRAYSCALE)
        rows,cols=img.shape[:2]
        print(img.shape)
        pixelSequence=img.reshape([rows*cols])
        numberBins=256
        histogram,bins,patch=plt.hist(pixelSequence,numberBins,facecolor='black',histtype='bar')
        plt.xlabel(u"gray Level")
        plt.ylabel(u'number of pixels')
        y_maxValue=np.max(histogram)
        print(y_maxValue)
        plt.axis([0,256,0,y_maxValue])
        plt.show()

     2、线性变换

    O=a*I+b

    a=1,b=0:原图的一个副本,a>1,则输出图像O对比度比I增大,0<a<1,O的对比度比I小。

    b的值影响图像的亮度,当b>0时,亮度增加;b<0时亮度减少。

    import cv2
    import numpy as np
    
    img=cv2.imread("1.jpg")
    a=2
    t=float(a)*img
    t[t>255]=255
    t=np.round(t)
    t=t.astype(np.uint8)
    
    cv2.imshow("img",img)
    cv2.imshow('t',t)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    #include<opencv2\core\core.hpp>
    #include<opencv2\highgui.hpp>
    #include<opencv2\imgproc.hpp>
    using namespace cv;
    
    int main()
    {
    	Mat img = imread("1.jpg",CV_LOAD_IMAGE_GRAYSCALE);
    	int rows = img.rows;
    	int cols = img.cols;
    
    	//线性变换第一种,通过Mat的成员函数	Mat::converTo(OutputArray m,int rtype,double alpha=1,double beta=0);
    	Mat out;
    	img.convertTo(out,CV_8UC1,2.0,0);
    	imshow("out1", out);
    	//线性变化第二种,使用乘法运算符,无论常数是什么类型,输出的矩阵的数据类型总是和输入矩阵类型相同。
    	Mat out1;
    	out1 = 2 * img+100;
    	imshow("out2",out1);
    	//线性变化第三种,基于OpenCV提供的函数:convertScaleAbs(InputArray src,OutputArray dst,double alpha=1,double beta=0);
    	Mat out2;
    	convertScaleAbs(img,out2,2,10);
    	imshow("out3", out2);
    	waitKey(0);
    }

     

    3、直方图正规化

    import numpy as np
    import cv2
    import Hist
    
    img=cv2.imread("1.jpg")
    Hist.Hist(img,"RAW")
    mx=np.max(img)
    mi=np.min(img)
    cv2.imshow("1",img)
    print(mx,mi)
    outx=255
    outi=0
    a=float(outx-outi)/(mx-mi)
    b=outi-a*mi
    print(a,b)
    out=a*img+b
    out[out>255]=255
    out=np.round(out)
    out=np.uint8(out)
    cv2.imshow("out",out)
    Hist.Hist(out,"After")
    cv2.waitKey(0)
    

     

     

    #include<opencv2\core\core.hpp>
    #include<opencv2\highgui.hpp>
    #include<opencv2\imgproc\imgproc.hpp>
    
    using namespace cv;
    /*
    	void minMaxLoc(InputArray src,dounle *minVal,double *maxVal,Point *minLoc=0,Point *maxLoc=0,InputArray mask=noArray());
    	src		:输入矩阵
    	minVal  :最小值,double类型指针
    	maxVal	:最大值,double类型指针
    	minLoc	:最小位置的索引,Point类型的指针
    	maxLoc	:最大位置的索引,Point类型的指针
    */
    int main()
    {
    	Mat img = imread("1.jpg",CV_LOAD_IMAGE_GRAYSCALE);
    	if (!img.data)
    		return -1;
    	double Imax, Imin;
    	minMaxLoc(img,&Imin,&Imax,NULL,NULL);
    	double Omax = 255, Omin = 0;
    	double a = (Omax - Omin) / (Imax - Imin);
    	double b = Omin - a*Imin;
    	Mat out;
    	convertScaleAbs(img, out, a, b);
    	imshow("RAW", img);
    	imshow("OUT", out);
    	waitKey(0);
    
    }

    4、正规划normalize

    import cv2
    import  numpy as np
    from Hist import *
    
    img=cv2.imread('1.jpg',cv2.IMREAD_ANYCOLOR)
    Hist(img,"RAW")
    dst=img
    cv2.normalize(img,dst,255,0,cv2.NORM_MINMAX,cv2.CV_8U)
    Hist(dst,"dst")
    cv2.imshow('raw',img)
    cv2.imshow('dst',dst)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    #include<opencv2\core.hpp>
    #include<opencv2\highgui.hpp>
    #include<opencv2\imgproc.hpp>
    
    using namespace cv;
    /*
    void normalize(InputArray src,OutputArray dst,double alpha=1,double beta=0,int norm_type=NORM_L2,int type=-1,InputArray mask=noArray());
    src	:输入矩阵
    dst :结构元
    alpha :结构元的锚点
    beta  :腐蚀操作的次数
    norm_type:边界扩充类型(NORM_type=NORM_L1  NORM_L2  NORM_MINMAX)
    dtype	 :边界扩充值
    */
    int main()
    {
    	Mat src = imread("1.jpg",CV_LOAD_IMAGE_ANYCOLOR);
    	if (!src.data)
    		return -1;
    	Mat dst;
    	normalize(src,dst,255,0,NORM_MINMAX,CV_8U);
    	imshow("原图",src);
    	imshow("正则化后",dst);
    	waitKey(0);
    }

    5、伽马变换 

    #include<opencv2\opencv.hpp>
    #include<opencv2\highgui\highgui.hpp>
    #include<opencv2\imgproc\imgproc.hpp>
    
    using namespace cv;
    /*
    	输入图像,首先将其灰度值归一化到[0,1]范围内,对于8位图来说,除以255即可,
    	I(r,c)代表归一化后的第r行第c列的灰度值,输出图像记为O,O(r,c)=I(r,c)^r
    	当r=1时,图像不变,如果图像整体或者感兴趣区域较暗,则令0<r<1,可以增加图像对比度,
    	相反,如果图像整体或者感兴趣区域较亮,则令r>1可以降低图像对比度。
    	综上:
    	1、对图像进行伽马变换时,首先将灰度值转化到[0,1]范围
    	2、进行幂运算
    */
    int main()
    {
    	Mat img = imread("1.jpg",CV_LOAD_IMAGE_GRAYSCALE);
    	Mat dst,out;
    	img.convertTo(dst, CV_64F, 1.0 / 255.0, 0);
    	double gamma = 0.5;
    	pow(dst, gamma, out);
    	//std::cout << out << std::endl;
    	imshow("out", out);
    	waitKey(0);
    	Mat tmp;
    	out.convertTo(tmp, CV_8U, 255, 0);
    	imwrite("out.jpg", tmp);
    	system("pause");
    	return 0;
    }
    import cv2
    import numpy as np
    
    img=cv2.imread("1.jpg",cv2.IMREAD_GRAYSCALE)
    out=img/255.0
    gamma=0.5
    out=np.power(out,gamma)
    out=out*255.0
    out=np.round(out)
    out=out.astype(np.uint8)
    
    cv2.imshow('img',img)
    cv2.imshow('out',out)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

     

    6、全局直方图均衡化

    import cv2
    import numpy as np
    import math
    from calcGrayHist import *
    """
    1、计算图像的灰度直方图
    2、计算灰度直方图的累加直方图
    3、根据累加直方图和直方图均衡化原理得到输入灰度级和输出灰度级之间的映射关系。
    4、根据第三步得到的灰度级映射关系,循环得到输出图像的每一个像素的灰度级
    """
    def equalHist(img):
        rows,cols=img.shape
        grayHist=Hist(img)
    
        zeroCumuMoment=np.zeros([256],np.uint32)
        zeroCumuMoment[0]=grayHist[0];
        for  i in range(1,256):
            zeroCumuMoment[i]=zeroCumuMoment[i-1]+grayHist[i]
        outPut_q=np.zeros([256],np.uint8)
        cofficient=256.0/(rows*cols)
        for i in range(256):
            q=float(zeroCumuMoment[i])*cofficient-1
            if q>=0:
                outPut_q[i]=math.floor(q)
            else:
                outPut_q[i]=0
        out=np.zeros(img.shape,np.uint8)
        for r in range(rows):
            for c in range(cols):
                out[r][c]=outPut_q[img[r][c]]
    
        return out
    
    if __name__=="__main__":
        img=cv2.imread("1.jpg",cv2.IMREAD_GRAYSCALE)
        out=equalHist(img)
        print(out)
        cv2.imshow("raw",img)
        cv2.imshow("equalHist",out)
        cv2.waitKey(0)
        cv2.destroyAllWindows()

     

    #include<opencv2\core.hpp>
    #include<opencv2\highgui.hpp>
    #include<opencv2\imgproc.hpp>
    #include<iostream>
    using namespace cv;
    
    Mat equalHist(Mat img);
    Mat calcGrayHist(Mat img);
    
    int main()
    {
    	Mat img = imread("1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    	std::cout << img.type() << std::endl;
    	if (!img.data)
    		return -1;
    	Mat out = equalHist(img);
    	imshow("raw", img);
    	imshow("equalHist", out);
    	waitKey(0);
    	return 0;
    }
    Mat equalHist(Mat img)
    {
    	CV_Assert(img.type()==CV_8UC1);//若括号中的表达式值为false,则返回一个错误信息。
    	int rows = img.rows;
    	int cols = img.cols;
    	//求图像灰度直方图
    	Mat grayHist = calcGrayHist(img);
    	//累加灰度直方图
    	Mat zeroCumuMoment = Mat::zeros(Size(256,1),CV_32SC1);
    	zeroCumuMoment.at<int>(0,0)= grayHist.at<int>(0,0);
    	for (int i = 1; i < 256; i++)
    		zeroCumuMoment.at<int>(0, i) = zeroCumuMoment.at<int>(0, i - 1) + grayHist.at<int>(0, i);
    	//根据累加直方图得到输入灰度级和输出灰度级之间的映射关系
    	Mat outPut_q = Mat::zeros(Size(256,1),CV_8UC1);
    	float cofficient = 256.0 / (rows*cols);
    	for (int i = 0; i < 256; i++)
    	{
    		float q = cofficient*zeroCumuMoment.at<int>(0, i) - 1;
    		if (q >= 0)
    			outPut_q.at<uchar>(0, i) = uchar(floor(q));
    		else
    			outPut_q.at<uchar>(0, i) = 0;
    	}
    	//计算直方图均衡化后的图像
    	Mat equalHistImage = Mat::zeros(img.size(),CV_8UC1);
    	for (int r = 0; r < rows; r++)
    	{
    		for (int c = 0; c < cols; c++)
    		{
    
    			int p = img.at<uchar>(r, c);
    			equalHistImage.at<uchar>(r, c) = outPut_q.at<uchar>(0, p);
    		}
    	}
    	return equalHistImage;
    }
    Mat calcGrayHist(Mat img)
    {
    	Mat cnt = Mat::zeros(Size(256,1),CV_32SC1);
    	int rows = img.rows;
    	int cols = img.cols;
    	for (int i = 0; i < rows; i++)
    		for (int j = 0; j < cols; j++)
    		{
    			cnt.at<int>(0, img.at<uchar>(i, j)) += 1;
    		}
    	return cnt;
    }

    7、限制对比度的自适应直方图均衡化

    #include<opencv2\core.hpp>
    #include<opencv2\highgui.hpp>
    #include<opencv2\imgproc.hpp>
    
    using namespace cv;
    /*
    	自适应直方图均衡化首先将图像划分为不重叠的区域块,然后对每一个块分别进行直方图均衡化,
    	显然在没有噪声的情况下,每一个小区域的灰度直方图会被限制再一个小的灰度级范围内,
    	但是如果有噪声,会被放大。
    	为了避免出现这种情况,提出“限制对比度”(contrast Limiting),如果直方图的bin超过了设定好的“限制对比度”,
    	那么会被裁减,然后将裁剪的部分均匀分布到其他的bin。
    	OpenCV中提供的函数createCLAHE构建指向CLAHE对象的指针,默认设置“限制对比度”为40。
    */
    int main()
    {
    	Mat src = imread("1.jpg",CV_LOAD_IMAGE_GRAYSCALE);
    	Ptr<CLAHE> clahe = createCLAHE(2.0, Size(8, 8));
    	Mat dst;
    	clahe->apply(src, dst);
    	imshow("原图", src);
    	imshow("对比度增强",dst);
    	waitKey(0);
    	destroyAllWindows();
    	return 0;
    }

     

    import cv2
    import numpy as np
    
    if __name__=="__main__":
        src=cv2.imread("1.jpg",cv2.IMREAD_GRAYSCALE)
    
        clahe=cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
        dst=clahe.apply(src)
        cv2.imshow("src",src)
        cv2.imshow("clahe",dst)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
    

     

    展开全文
  • 图像对比度计算

    万次阅读 热门讨论 2014-11-03 16:19:27
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...%计算图像对比度 %方法一:中心像素灰度值与周围4近邻像素灰度值之差的平方之和,除以以上平方项的个数。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



    matlab中求解方式:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %计算图像对比度
    %方法一:中心像素灰度值与周围4近邻像素灰度值之差的平方之和,除以以上平方项的个数。
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    functioncg = duibidu4(f) %f为输入图像,cg为输出的对比度数值,是英文contrast gradient的首字母组合
    [m,n] = size(f);%求原始图像的行数m和列数n
    g = padarray(f,[1 1],'symmetric','both');%对原始图像进行扩展,比如50*50的图像,扩展后变成52*52的图像,
    %扩展只是对原始图像的周边像素进行复制的方法进行
    [r,c] = size(g);%求扩展后图像的行数r和列数c
    g = double(g);  %把扩展后图像转变成双精度浮点数
    k = 0;  %定义一数值k,初始值为0
    fori=2:r-1
    forj=2:c-1
    k = k+(g(i,j-1)-g(i,j))^2+(g(i-1,j)-g(i,j))^2+(g(i,j+1)-g(i,j))^2+(g(i+1,j)-g(i,j))^2;
    end
    end
    cg = k/(4*(m-2)*(n-2)+3*(2*(m-2)+2*(n-2))+4*2);%求原始图像对比度
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %计算图像对比度
    %方法二:中心像素灰度值与周围8近邻像素灰度值之差的平方之和,除以以上之差的个数。
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    functioncg = duibidu8(f) %f为输入图像,cg为输出的对比度数值,是英文contrast gradient的首字母组合
    [m,n] = size(f);%求原始图像的行数m和列数n
    g = padarray(f,[1 1],'symmetric','both');%对原始图像进行扩展,比如50*50的图像,扩展后变成52*52的图像,
    %扩展只是对原始图像的周边像素进行复制的方法进行
    [r,c] = size(g);%求扩展后图像的行数r和列数c
    g = double(g);  %把扩展后图像转变成双精度浮点数
    k=0;  %定义一数值k,初始值为0
    fori=2:r-1
    forj=2:c-1
    k = k+(g(i,j-1)-g(i,j))^2+(g(i-1,j)-g(i,j))^2+(g(i,j+1)-g(i,j))^2+(g(i+1,j)-g(i,j))^2+...
    (g(i-1,j-1)-g(i,j))^2+(g(i-1,j+1)-g(i,j))^2+(g(i+1,j-1)-g(i,j))^2+(g(i+1,j+1)-g(i,j))^2;
    end
    end
    cg = k/(8*(m-2)*(n-2)+6*(2*(m-2)+2*(n-2))+4*3);%求原始图像对比度









    展开全文
  • 基于matlab,读取图像文件并,并计算图像对比度计算公式采用:各中心像素灰度值与周围8近邻像素灰度值之差的平方之和再除以差的个数。 注:直接运行,选取路径即可输出计算结果,十分方便。适用于大量图片待...
  • 1,图像标准差;2,图像对比度;3,图像清晰度 上述三个问题的Matlab程序
  • 这是一组Matlab函数,可用于计算输入图像(自然场景)的局部对比度统计信息。 使用旨在模拟LGN接收场的多尺度滤波器来计算局部对比度图像上的局部对比度大小图以直方图形式汇总,然后以两种方式进行表征:1)使用...
  • 【实验名称】 图像对比度调整

    【实验名称】

    图像对比度调整

    【实验目的】

    1. 通过本次实验掌握图像对比度自动调整技术;
    2. .熟悉使用库函数imhist、histeq;

       

     【实验内容】

    1. 利用库函数imhist计算并分别显示下图(图1)中图像的直方图,并分析图像质量;
    2. 利用熟悉的图像处理技术对以上图像进行图像处理,比对效果,最后推荐一种方法。

     【实验代码】

    显示各个图像以及直方图(subplot形式显示)

    clc;clear;close all;
    img1=imread('实验4_Fig1.tif');
    img2=imread('实验4_Fig2.jpg');
    img3=imread('实验4_Fig3.jpg');
    % 图1
    subplot(2,3,1);
    imshow(img1);
    subplot(2,3,4);
    imhist(img1);
    % 图2
    subplot(2,3,2);
    imshow(img2);
    subplot(2,3,5);
    imhist(img2);
    % 图3
    subplot(2,3,3);
    imshow(img3);
    subplot(2,3,6);
    imhist(img3);
    

    线性插值处理:

    clc;clear;close all;
    % 线性插值
    img1=imread('实验4_Fig3.jpg');
    [m,n,k]=size(img1);
    a=double(img1);
    amin=0;
    amax=255;
    alow=min(a(:));
    ahigh=max(a(:));
    a2=amin+(a-alow)*(amax-amin)/(ahigh-alow);
    img2=uint8(a2);
    subplot(2,2,1)
    imshow(img1)
    title('原图')
    subplot(2,2,2)
    imshow(img2)
    title('自动调整后')
    subplot(2,2,3)
    imhist(img1)
    subplot(2,2,4);
    imhist(img2)
    

    非线性变换处理(对数变换)

    clc;clear;close all;
     I=imread('实验4_Fig2.jpg');             
     subplot(1,2,1),imshow(I);
     title(' 原图像');
     axis([50,250,50,200]);                
     J=double(I);
     J=40*(log(J+1));
     H=uint8(J);
     subplot(1,2,2),imshow(H);
     title(' 非线性变换--对数变换图像');
     axis([50,250,50,200]);
    

    直方图等值化处理

    clc;
    clear;
    close all;
    img1=imread('实验4_Fig1.tif');
    subplot(1,2,1);
    imshow(img1);
    title('原图像');
    img2=histeq(img1);
    subplot(1,2,2);
    imshow(img2);
    title('直方图等值化后图像');
    

    【运行结果】

    分别显示三个图像以及对应的直方图(subplot形式显示)

    线性插值:

     

    非线性变换之对数变换

     

     

     直方图等值化

     

     

     

    展开全文
  • 基于matlab,读取图像文件并,并计算图像对比度计算公式采用:各中心像素灰度值与周围8近邻像素灰度值之差的平方之和再除以差的个数。 注:直接运行,选取路径即可输出计算结果,十分方便。适用于大量图片待...
  • 图像对比度

    热门讨论 2013-02-03 16:29:05
    此 matlab 代码可以快速有效的进行图像对比度计算
  • 灰度差分统计法计算图像对比度

    千次阅读 2019-01-11 21:44:10
    灰度差分统计法计算图像对比度插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式...
  • 目的为解决局部带限对比度存在的问题,提出一种对比敏感度下的图像对比度评价方法.方法对低通滤波后的图像进行快速小波分解,然后对各级小波系数进行处理分别得到各级带通滤波图像及其相应低通滤波图像,求出Peli...
  • 数字图像的亮度与对比度 亮度:设uint8型的灰度图像的二维矩阵为A,设置常整数-255<=c<=255,则A+c就表示亮度的调整。若A+c超过255则自动设置为255,反之若A+c小于0则自动设置为0 对比度:设uint8型的灰度...
  • 图像对比度调整

    2018-01-29 21:19:00
    图像对比度就是对图像颜色和亮度差异感知,对比度越大,图像的对象与周围差异性也就越大,反之亦然。 调整图像对比度的方法大致如下:(前提为对比度系数用户输入范围为【-100~100】) 1)读取每个RGB像素值Prgb,...
  • 一键式窗口化的界面,用于计算多幅图像序列的熵和对比度
  • 关于图像分割的区域对比度计算: 计算区域的中心与质心 区域颜色相似度距离的高斯权重分布 生成新区域 统计区域边界的像素数量 区域分割 #%%cython --cplus --annotate import numpy as np cimport cython cimport...
  • 图像对比度增强

    2021-05-24 16:57:04
    图像对比度增强 1. 线性变换 通过y=ax+b对灰度值进行处理,例如对于过暗的图片,其灰度分布在[0,100], 选择a=2,b=10能将灰度范围拉伸到[10, 210]。 需要根据情况设置a和b的值。 cv2.convertScaleAbs(img,alpha=1.5,...
  • 如何用MATLAB计算图像标准差,清晰度和全局对比度,求程序
  • 一 提升图像对比度和亮度 二 代码实现 三 实现效果 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 提升图像对比度和亮度 一般来说图像的变换可以分成以下两类: (1)像素变换 在像素变换中,...
  • 彩色图像对比度

    千次阅读 2015-10-14 13:58:48
    对比度的定义:简单的来说就是使亮...网上最常用的调整对比度的算法是根据图像的灰度进行调整 下面是算法:   1、计算平均亮度 2、每点与平均亮度比较,得到差值。 3、新的亮度 = 平均亮度 + 系数 * 
  • 掩膜操作 提高图像对比度 1.获取图像像素指针 CV_Assert(src.depth() == CV_8U); Mat.ptr(int i=0) 获取...掩膜操作是指根据掩膜矩阵(掩膜mask,也称作核kernel)重新计算图像中每个像素的值,实现图像对比度提高。
  • 斯坦福课图像对比度:%% 计算图像对比度——4近邻 % @matrix -- 输入的图像为灰度图 % 处理方式:构造一个一维差数[1,max+1],组沿着矩阵row轴,当前像素值与右一个像素做差取绝对值 % 将其累加1在一维差数组对应...
  • cg = b / (4 * (m - 2) * (n - 2) + 3 * (2 * (m - 2) + 2 * (n - 2)) + 2 * 4) # 对应上面48的计算公式 print(cg) def brightness(im_file): im = Image.open(im_file).convert('L') stat = ImageStat.Stat(im) ...
  • 采用滑动邻域操作对声纳图像进行了对比度增强处理;重点介绍了MATLAB下的数据并行编程,利用分布式数组设计了集群环境下的图像增强并行算法。实验结果表明,MATLAB强大的内部函数使得并行计算易于实现,有效地提高了...
  • 对游戏图像抓图后,使用PS通过调整对比度极限化,也就是对比度调整到100之后,可以准确识别出鱼漂位置,因此,这两天只对图片的对比度ymgk调整进行了一定的研究,现在标记在此,以做记录。具体实现的代码,见下载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,343
精华内容 537
关键字:

计算图像对比度