杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)

这篇具有很好参考价值的文章主要介绍了杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

2023-03-23我发布了基于加权概率模型(杰林码的理论模型)的图像颜色增强和轮廓预测的应用方法。效果还不太明显,于是我又花了2周的时间进行了技术优化。下面仅提供了x86下的BMP和JPG对应的lib和dll,本文中的算法属于我国自主的发明专利技术,商用必须获得授权,可提供linux(麒麟、鸿蒙)、x64、riscv、ARM等库,可在GPU上实现视频清晰化处理。在相同的尺寸下加权概率模型优化后的效果:
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
效率方面还不错,一张1080P的图像大概能在1秒左右运算完毕。如果采用多线程完全可以在GPU上实现多帧优化。上面相关参数设置的比较夸张,实际情况下可以根据个人感觉进行设置。

二、测试程序

int main() { // 3
	ULONGLONG t1, t2;
	WJLImageEnhancement wie;
	int err;
	char url1[200], url2[200];
	int i, length;
	ImageEnhanced imageEnhanced;
	// 设置对应的参数
	imageEnhanced.magnification = 0;          // 图像放大尺寸,0为不放大仅做清晰化处理
	imageEnhanced.contour_size = 15;          // 轮廓像素范围,影响清晰度和运算效率,越大越清晰但运算所需时间越长
	imageEnhanced.jielin_ratio = 35;          // 杰林码系数0-49共50种值,越接近0则可以分解出背景的子图,越接近50则可以分解出前景子图
	imageEnhanced.foreground_clear_size = 7;  // 前景清晰化的像素范围
	imageEnhanced.background_clear_size = 3;  // 背景清晰化的像素范围
	imageEnhanced.threshold = 13;             // 相邻像素值之差的绝对阈值,当绝对值大于等于threshold时属于需要清晰化的像素值,配合foreground_clear_size和background_clear_size同时使用的

	const char* fileName = "xxxx";   // xxxx为BMP图像的名称
	sprintf_s(url1, 200, "D:\\%s.bmp", fileName);
	sprintf_s(url2, 200, "D:\\%s-%d-%d-%d-%d-%d.bmp", fileName, imageEnhanced.magnification, imageEnhanced.jielin_ratio, imageEnhanced.contour_size, imageEnhanced.foreground_clear_size, imageEnhanced.background_clear_size);

	// 把灰度图像进行滤波变换
	t1 = GetTickCount64();
	err = wie.WJL_BMPFILE_ENHANCEMENT(url1, url2, &imageEnhanced);
	t2 = GetTickCount64();
	// 耗时,包括了bmp图像读写和运算部分
	printf("运算总耗时:%lld ms\n", t2 - t1);
	system("pause");
	return 0;
}

三、vs2019下引用的方法

新建一个控制台项目,然后右击:
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
然后新建一个main.cpp

#include "WJLImageEnhancement.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <math.h>
using namespace std;
#ifdef WIN32
#define  inline __inline
#endif // WIN32

int main() { // 4
	ULONGLONG t1, t2;
	WJLImageEnhancement wie;
	int err;
	char url1[200], url2[200];
	ImageEnhanced imageEnhanced;
	// 设置对应的参数,根据个人喜好设置
	imageEnhanced.magnification = 0;          // 图像放大尺寸,0为不放大仅做清晰化处理
	imageEnhanced.contour_size = 15;          // 轮廓像素范围,影响清晰度和运算效率,越大越清晰但运算所需时间越长
	imageEnhanced.jielin_ratio = 35;          // 杰林码系数0-49共50种值,越接近0则可以分解出背景的子图,越接近50则可以分解出前景子图
	imageEnhanced.foreground_clear_size = 5;  // 前景清晰化的像素范围
	imageEnhanced.background_clear_size = 2;  // 背景清晰化的像素范围
	imageEnhanced.threshold = 13;             // 相邻像素值之差的绝对阈值,当绝对值大于等于threshold时属于需要清晰化的像素值,配合foreground_clear_size和background_clear_size同时使用的

	const char* fileName = "heye";  // jpg的文件名
	sprintf_s(url1, 200, "D:\\%s.jpg", fileName);
	sprintf_s(url2, 200, "D:\\%s-%d-%d-%d-%d-%d.bmp", fileName, imageEnhanced.magnification, imageEnhanced.jielin_ratio, imageEnhanced.contour_size, imageEnhanced.foreground_clear_size, imageEnhanced.background_clear_size);

	// 把灰度图像进行滤波变换
	t1 = GetTickCount64();
	err = wie.WJL_JPGFILE_ENHANCEMENT(url1, url2, &imageEnhanced);
	t2 = GetTickCount64();
	// 耗时
	printf("变换算法总耗时:%lld ms\n", t2 - t1);

	system("pause");
	return 0;
}

比如下面的效果图:
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
控制台运行时间:
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
然后比较两张图的效果如下:
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
参数不同将产生不同的效果:
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
通过测试,各参数的设置取值范围为:
在杰林码超分辨率的算法程序内,主要是ImageEnhanced结构体的参数直接影响到图像输出的质量。文章来源地址https://www.toymoban.com/news/detail-417075.html

参数名称 取值范围 功能说明
magnification 0-3 尺寸放大参数,0表示不放大,1代表图像放大(1+1)(1+1)=4倍,2代表图像放大(2+1)(2+1)=9倍,一般情况下1080P放大到4K输入1即可,一般设置为0-2
jielin_ratio 0-49 杰林码算法的前景背景像素分离的核心参数,越接近0获得的像素块越接近纹理背景,越接近49获得的像素块越接近前景,通过参数设置把图像分割成为前景像素块和背景像素块,属于频率变换算法的一种,一般设置为15-35
contour_size 4-32 这个是以块为单位的轮廓预测参数,一般情况下设置为15,越小效率越高,但是轮廓预测的越不准确,一般设置为15-24
foreground_clear_size 1-16 前景像素块内的连续像素个数,此值越大运算越慢,前景和背景的轮廓越清晰,一般设置为1-8
background_clear_size 1-8 背景纹理预测的连续像素个数,此值越大运算越慢,纹理越清晰,一般设置为1-3

到了这里,关于杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# OpenCvSharp DNN 二维码增强 超分辨率

    目录 效果 项目 代码 下载  using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Dnn; using OpenCvSharp.Extensions; namespace OpenCvSharp_DNN_二维码增强 {     public partial cl

    2024年02月12日
    浏览(29)
  • 图像超分辨率重建概述

    1. 概念:         图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率、空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力。相较于低分辨率图像,高分辨率图像通常包含更大的像素密度、更丰富的纹理细节及更

    2024年02月04日
    浏览(40)
  • 图像超分辨率简单介绍

    图像超分辨率(Image Super-Resolution,简称SR)是一种通过使用计算机算法提高图像分辨率的技术,即从低分辨率的图像中生成高分辨率的图像。图像SR可以在许多领域得到应用,例如计算机视觉、医学成像、遥感等。 图像SR旨在从低分辨率(低清晰度)图像中提高图像质量和信

    2024年02月06日
    浏览(32)
  • 图像超分辨率重建(pytorch)

             本文代码主体来自CVPR2020论文《Closed-loop matters: Dual regression networks for single image super-resolution》,但原作者并未提供论文亮点--如何使用unpair数据进行训练的代码,所以我在其基础上补齐了该过程的代码。         代码仓库:https://github.com/VitaminyW/Super_Solution      

    2024年01月16日
    浏览(32)
  • ISP之图像降分辨率

    1、图像缩放背景 图像的放大、缩小(简称缩放)是图像处理的一种处理方法。所谓图像缩放是指图像分辨率的改变,它在图像显示、传输、图像分析以及动画制作、电影合成、甚至医学图像处理中都有着相当广泛的应用。比如要在1024 X 768 分辨率的显示器上全屏显示800 X 600 的数

    2024年02月11日
    浏览(36)
  • 【图像超分辨率重建】——GRL论文精读笔记

    作者: Yawei Li1 Yuchen Fan2 Xiaoyu Xiang2 Denis Demandolx2 Rakesh Ranjan2 Radu Timofte1;3 Luc Van Gool1;4 期刊: CVPR 引用: * 摘要: 本文的目的是提出一种机制,在全局、区域和局部范围内有效和明确地建立图像层次模型,用于图像修复。为了实现这一目标,我们首先分析了自然图像的两个重要

    2024年02月09日
    浏览(40)
  • 无人机航拍图像的空间分辨率计算

    GSD:无人机/遥感卫星的空间分辨率,指航片/遥感影像一个像素点代表的空间距离。 计算公式: d:单位cm、指空间分辨率。 s:单位µm、指像元大小(像素间距)。 H:单位m、指飞行高度。 f:单位mm、指焦段(即镜头的焦段)。 注意:计算时统一单位。同时,更值得注意的

    2024年02月01日
    浏览(41)
  • 【图像超分辨率重建】——HAT论文精读笔记

    作者: Xiangyu Chen, Xintao Wang, Jiantao Zhou, and Chao Dong 期刊: 引用: 摘要: 基于 Transformer 的方法在图像超分辨率等低级视觉任务中表现出令人印象深刻的性能。然而,我们发现这些网络只能通过归因分析利用有限空间范围的输入信息。这意味着 Transformer 的潜力在现有网络中仍未

    2024年02月08日
    浏览(47)
  • 使用OpenCV实现图像超分辨率(Python)

    超分辨率技术指的是将低分辨率的图像或视频通过算法转换成高分辨率的图像或视频的操作。 超分辨率可以分为两种:单图像超分辨率(Single Image Super Resolution,SISR)和视频超分辨率(Video Super Resolution,VSR)。 OpenCV中的超分辨率功能被集中在了contrib模块中,因此我们首先需

    2024年02月13日
    浏览(34)
  • 遥感图像应用:在低分辨率图像上实现洪水损害检测(迁移学习)

    对于卷积神经网络(CNN)等模型,通常包括一些卷积层和池化层,这些层的权重用于提取图像的特征。当这些层的参数被冻结时,这些权重将保持不变,不会在训练过程中进行更新。这意味着模型会继续使用预训练模型的 特征提取能力 。 如果模型还包含其他的预训练层,例

    2024年02月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包