数字图像处理:对数变换

设置窗口大小的函数:

namedWindow("窗口名", 0);

resizeWindow("窗口名", width, height);

#include <iostream>
#include <cmath>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
void log_transfor(Mat &image, Mat &result)
{
	result = image.clone();
	int rows = image.rows, cols = image.cols;
	for (int i = 0; i < rows; i++)
	{
		for (int j = 0; j < cols; j++)
		{
			for (int k = 0; k < 3; k++)
			{
				result.at<Vec3b>(i, j)[k] = 31 * log2(1 + image.at<Vec3b>(i, j)[k]);
			}
		}
	}
}
int main()
{
	Mat image = imread("f:\\图片\\lucky.jpg");
	
	Mat result;
	log_transfor(image, result);
	namedWindow("原图", 0);
	namedWindow("对数变换", 0);
	resizeWindow("原图", 500, 600);
	resizeWindow("对数变换", 500, 600);
	imshow("原图", image);
	imshow("对数变换", result);
	waitKey(0);
	return 0;
}

版权声明:本文为qq_25974431原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_25974431/article/details/89924875

智能推荐

MATLAB图像处理-图像增强之不用MATLAB自带函数对数变换和幂次变换(伽马矫正)

对数变换(Power-Law 变换)的公式为: 由一个参数决定,c,1+r的目的是保证像素值为非负数 它的作用是:扩展图像中的暗像素,可以增加低亮度的区域 MATLAB函数代码如下: 其中的k为放大系数,img_before为要变换的图像,img_after为变换后的图像 完整的代码如下: 幂次变换(Log变换)公式如下: 幂次曲线中的 值决定了是把输入窄带暗值映射到宽带输出值还是把输入窄带亮值映...

数字图像处理——用Java对数字图像写水印

写水印这个是数字图像处理中十分常见的操作,比如我们在CSDN上传个图片啥的,它还要在图片的右下方写点“http://blog.csdn.net/sinat_36246371”,那么我们用Java代码也在图片上写点啥,直接看代码吧。 代码对图像的读写与前面的一样,不需要再啰嗦了。BufferedImage在前面也讲过了,就是指明图像的表现形式。 不一样的地方来了: 首先我们用...

数字图像处理——用Java对数字图像取反

图像取反相当于取底片,对于每个像素点的RGB来讲,就是: R′=255−R G′=255−G B′=255−B 用R’,G’,B’来替换R,G,B。 直接上图吧,假如原图像是这样的: 那么处理后的图像就是这样的: 代码实现如下:...

数字图像处理-Matlab实现图像的几何变换

目录   图像的平移 图像的旋转 图像的切变 图像的镜像 上述函数的测试脚本 结果 图像的平移 图像的旋转 图像的切变 图像的镜像 上述函数的测试脚本 结果 Fig1.图像的几何变换测试 注: 1.转载请注明出处。 2.本文使用的算法是几何变换用矩阵表示。 3.插值算法可以进一步优化,笔者精力有限没做尝试。 4.本文的所有图像处理都使用了前向和后向两种映射,注意区别其产生的结果。...

Python+Selenium+Autolt选择本地文件上传至网站

如果网站有上传文件的功能,selenium不提供对本地元素的定位,如何使用python选择本地文件进行上传呢 可以使用Autolt工具上传文件: 1、下载网址:https://www.autoitscript.com/site/autoit/downloads/ 2、点击“Downlad ZIP”下载 3、解压缩下载的ZIP文件 4、打开脚本编辑器文件夹,有一个SciTE....

猜你喜欢

数据结构系列之一-线性表

数据结构系列--线性表 慧子和她的3D 慧子和她的3D      暑期工作搞不下去,不如趁着现在整块时间搞编程。学习资料书《大话数据结构》,前面两章的铺垫感性知识,看看过,从第三章开始正餐。 01 — 线性表 线性表:零个或多个数据元素的有限序列。用数学语言表达:       ...

Linux系统的远程操作练习

目录 一、将虚拟机Ubuntu系统的网络连接设置为“桥接模式”,并配置Ubuntu的IP、网关参数 二、在win10系统下用putty登录ubuntu系统 三、VNC server VNC viewer 思考 一、将虚拟机Ubuntu系统的网络连接设置为“桥接模式”,并配置Ubuntu的IP、网关参数 1.打开虚拟机,进入设置 点击网络适配器,选择桥...

ORACLE----TimeStamp(时间戳)自动更新

之前对id的自增长进行了设置,原以为时间戳的更新也类似,使用序列之类的,但最终发现跟序列没半毛钱关系。触发器是肯定要用的,但编写脚本也是需要的。 (1)创建触发器 图2中,我们要选择事件(即例子中的INSERT,UPDATE),触发时间(即INSERT,UPDATE事件的前或后,例子中是before),列(例子中为MODIFIED_DATE,为TimeStamp类型),新旧值(为系统默认值OLD和...

数字图像处理:对数变换

设置窗口大小的函数: namedWindow("窗口名", 0); resizeWindow("窗口名", width, height);...

LeetCode(剑指offer-tree)-面试题26. 树的子结构

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 树的遍历方式为:前序遍历 给定的树 A: 给定的树 B: 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示例 1: 示例 2: 限制: 题源链接:https://leetcode-cn.com/problems/shu-de-z...