点运算

公式:

G(X)=a*raw(X)+b
线性方程,改变图像的亮度

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main() {
    Mat src;
    src = imread("F:/test.jpg");
    int width = src.cols;
    int height = src.rows;
    Mat dst;
    dst = Mat::zeros(src.size(), src.type());
    float alpha = 1.2;
    float beta = 30;
    Mat ml;
    src.convertTo(ml, CV_32F);
    for (int row = 0; row < height; row++) {
        for (int col = 0; col < width; col++) {
            if (src.channels() == 3) {
                float b = ml.at<Vec3f>(row, col)[0];
                float g = ml.at<Vec3f>(row, col)[1];
                float r = ml.at<Vec3f>(row, col)[2];

                dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(b*alpha + beta);
                dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(g*alpha + beta);
                dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(r*alpha + beta);
            }
        }
    }
    
    imshow("点运算", dst);
    waitKey(0);
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 图像的点运算主要用于改变一副图像的灰度分布范围。操作对象是单个像素值,输出像素值只与输入像素值有关。 灰度直方图 ...
    plus先生阅读 5,569评论 0 0
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 12,978评论 0 13
  • 灰度的线性变换 线性灰度变换函数f(x)是一个一维线性函数。可以用 进行表示,其中k是线性函数的斜率,k是线性函数...
    还浴月阅读 3,077评论 0 0
  • 伽马变换 伽马变换又名指数变换或幂次变换,是另一种常用的灰度非线性变换。 一般表达式如下, 其中,x与y的取值范围...
    还浴月阅读 4,385评论 0 0
  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 13,730评论 0 5