【图像处理】:opencv实现模糊图像处理和对比度增强
opencv实现模糊图像处理和对比度增强
- 模糊图像处理
- **方法 1:Wiener 反卷积(已知模糊核)**
- **方法 2:非锐化掩码(Unsharp Masking)**
- **方法 3:拉普拉斯锐化(Laplacian Sharpening)**
- **方法 4:边缘增强(Sobel 滤波器)**
- **总结**
- 图像对比度增强的算法
- **方法 1:直方图均衡化(Histogram Equalization)**
- **方法 2:伽马校正(Gamma Correction)**
- **方法 3:对比度拉伸(Contrast Stretching)**
- **方法 4:S形曲线调整(S-Curve Adjustment)**
- **方法 5:局部对比度增强(Local Contrast Enhancement)**
- **方法对比总结**
- **完整代码示例(整合所有方法)**
- **如何选择最佳方法?**
模糊图像处理
在传统图像处理中,OpenCV 可以通过 去模糊(Deblurring) 或 锐化(Sharpening) 技术让模糊图像变得更清晰。常用的方法包括:
- 反卷积(Wiener 滤波) - 适用于已知模糊核(如运动模糊)的情况。
- 非锐化掩码(Unsharp Masking) - 增强边缘对比度。
- 拉普拉斯锐化(Laplacian Sharpening) - 突出高频细节。
- 边缘增强滤波器(如 Sobel、Scharr) - 强化边缘信息。
方法 1:Wiener 反卷积(已知模糊核)
适用于已知模糊类型(如运动模糊、高斯模糊)的情况。
import cv2
import numpy as npdef wiener_deblur(image_path, kernel_size=(5, 5), snr=1000):# 读取图像(转为灰度图)img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 模拟模糊核(这里用高斯模糊核,实际应用需根据真实模糊调整)blur_kernel = np.ones(kernel_size, np.float32) / (kernel_size[0] * kernel_size[1])blurred = cv2.filter2D(img, -1, blur_kernel)# Wiener 反卷积去模糊deblurred = cv2.deconvolve(blurred, blur_kernel, snr)[0]deblurred = np.clip(deblurred, 0, 255).astype(np.uint8) # 限制像素范围# 显示结果cv2.imshow("Original", img)cv2.imshow("Blurred", blurred)cv2.imshow("Deblurred (Wiener)", deblurred)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
wiener_deblur("C:/Users/longc/Desktop/60000_8/source.jpg", kernel_size=(15, 15), snr=1000)
方法 2:非锐化掩码(Unsharp Masking)
通过增强高频细节来锐化图像。
import cv2def unsharp_mask(image_path, kernel_size=(5, 5), alpha=1.5):img = cv2.imread(image_path)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 高斯模糊blurred = cv2.GaussianBlur(img, kernel_size, 0)# 非锐化掩码:原图 - 模糊图 + 原图sharpened = cv2.addWeighted(img, 1 + alpha, blurred, -alpha, 0)cv2.imshow("Original", img)cv2.imshow("Sharpened (Unsharp Mask)", sharpened)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
unsharp_mask("C:/Users/longc/Desktop/60000_8/source.jpg", alpha=1.5)
方法 3:拉普拉斯锐化(Laplacian Sharpening)
通过拉普拉斯算子增强边缘。
import cv2def laplacian_sharpen(image_path, ksize=3, scale=1):img = cv2.imread(image_path)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 拉普拉斯算子laplacian = cv2.Laplacian(img, cv2.CV_64F, ksize=ksize)sharpened = img - scale * laplaciansharpened = np.clip(sharpened, 0, 255).astype(np.uint8)cv2.imshow("Original", img)cv2.imshow("Sharpened (Laplacian)", sharpened)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
laplacian_sharpen("C:/Users/longc/Desktop/60000_8/source.jpg", scale=0.5)
方法 4:边缘增强(Sobel 滤波器)
通过 Sobel 算子增强边缘。
import cv2
import numpy as npdef sobel_edge_sharpen(image_path, ksize=3):img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# Sobel 边缘检测sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=ksize)sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=ksize)edges = cv2.magnitude(sobel_x, sobel_y)# 增强边缘sharpened = cv2.addWeighted(img, 1.0, edges.astype(np.uint8), 0.5, 0)cv2.imshow("Original", img)cv2.imshow("Sharpened (Sobel Edge)", sharpened)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
sobel_edge_sharpen("C:/Users/longc/Desktop/60000_8/source.jpg")
总结
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
Wiener 反卷积 | 已知模糊核(如运动模糊) | 去模糊效果好 | 需估计模糊核 |
非锐化掩码 | 轻微模糊 | 计算快 | 可能引入噪声 |
拉普拉斯锐化 | 增强边缘 | 简单高效 | 可能放大噪声 |
Sobel 边缘增强 | 强化边缘 | 适用于低对比度图像 | 可能过度锐化 |
推荐流程:
- 先尝试 非锐化掩码(
unsharp_mask
),调整alpha
参数。 - 如果模糊较严重,尝试 Wiener 反卷积(需估计模糊核)。
- 如果图像边缘较弱,用 拉普拉斯锐化 或 Sobel 边缘增强。
综合下来感觉*拉普拉斯锐化的效果最好
图像对比度增强的算法
在传统图像处理中,OpenCV 可以通过多种方法增强图像对比度,以下是几种常用算法及具体实现代码:
方法 1:直方图均衡化(Histogram Equalization)
原理:拉伸像素分布,增强全局对比度。
适用场景:整体偏暗或偏亮的图像。
import cv2def histogram_equalization(image_path):img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) # 读取为灰度图if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 全局直方图均衡化equalized = cv2.equalizeHist(img)# 显示结果cv2.imshow("Original", img)cv2.imshow("Equalized (Global)", equalized)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
histogram_equalization("C:/Users/longc/Desktop/60000_8/source.jpg")
改进版(CLAHE):
限制局部对比度过度增强,避免噪声放大。
def clahe_enhancement(image_path, clip_limit=2.0, grid_size=(8, 8)):img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# CLAHE(对比度受限的自适应直方图均衡化)clahe = cv2.createCLAHE(clipLimit=clip_limit, tileGridSize=grid_size)equalized = clahe.apply(img)cv2.imshow("Original", img)cv2.imshow("Equalized (CLAHE)", equalized)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
clahe_enhancement("C:/Users/longc/Desktop/60000_8/source.jpg", clip_limit=2.0)
方法 2:伽马校正(Gamma Correction)
原理:调整像素的非线性映射,增强暗部或亮部细节。
适用场景:低对比度或光照不均的图像。
import cv2
import numpy as npdef gamma_correction(image_path, gamma=1.5):img = cv2.imread(image_path)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 归一化并应用伽马校正normalized = img / 255.0corrected = np.power(normalized, gamma) * 255.0corrected = corrected.astype(np.uint8)cv2.imshow("Original", img)cv2.imshow(f"Gamma Corrected (γ={gamma})", corrected)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例(γ>1提亮暗部,γ<1抑制亮部)
gamma_correction("C:/Users/longc/Desktop/60000_8/source.jpg", gamma=1.5)
方法 3:对比度拉伸(Contrast Stretching)
原理:线性拉伸像素范围到[0, 255]。
适用场景:像素集中在狭窄区间的图像。
import cv2
import numpy as npdef contrast_stretching(image_path):img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 计算当前像素范围min_val = np.min(img)max_val = np.max(img)# 线性拉伸stretched = ((img - min_val) / (max_val - min_val)) * 255stretched = stretched.astype(np.uint8)cv2.imshow("Original", img)cv2.imshow("Contrast Stretched", stretched)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
contrast_stretching("C:/Users/longc/Desktop/60000_8/source.jpg")
方法 4:S形曲线调整(S-Curve Adjustment)
原理:通过S形曲线增强中间调对比度。
适用场景:需要同时增强暗部和亮部细节。
import cv2
import numpy as npdef s_curve_adjustment(image_path, alpha=1.5):img = cv2.imread(image_path)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 归一化并应用S形曲线normalized = img / 255.0adjusted = 1 / (1 + np.exp(-alpha * (normalized - 0.5))) # Sigmoid函数adjusted = (adjusted * 255).astype(np.uint8)cv2.imshow("Original", img)cv2.imshow(f"S-Curve Adjusted (α={alpha})", adjusted)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
s_curve_adjustment("C:/Users/longc/Desktop/60000_8/source.jpg", alpha=5.0)
方法 5:局部对比度增强(Local Contrast Enhancement)
原理:通过局部均值和标准差调整对比度。
适用场景:需要增强纹理细节的图像。
import cv2
import numpy as npdef local_contrast_enhancement(image_path, block_size=8, c=10):img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 计算局部均值和标准差mean = cv2.blur(img, (block_size, block_size))stddev = cv2.blur(img**2, (block_size, block_size))stddev = np.sqrt(stddev - mean**2)# 调整对比度enhanced = (img - mean) * (c / stddev) + meanenhanced = np.clip(enhanced, 0, 255).astype(np.uint8)cv2.imshow("Original", img)cv2.imshow("Local Contrast Enhanced", enhanced)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
local_contrast_enhancement("C:/Users/longc/Desktop/60000_8/source.jpg", block_size=8, c=20)
方法对比总结
方法 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
直方图均衡化 | 全局对比度提升明显 | 可能放大噪声 | 整体偏暗/亮的图像 |
CLAHE | 避免局部过增强 | 参数需调优 | 光照不均的图像 |
伽马校正 | 可针对性增强暗部或亮部 | 需手动选择γ值 | 低对比度图像 |
对比度拉伸 | 简单直接 | 对极端值敏感 | 像素分布狭窄的图像 |
S形曲线 | 同时增强暗部和亮部 | 计算稍复杂 | 需要平衡对比度的图像 |
局部对比度增强 | 增强纹理细节 | 可能引入块效应 | 富含纹理的图像 |
完整代码示例(整合所有方法)
import cv2
import numpy as npdef enhance_contrast(image_path):img = cv2.imread(image_path)if img is None:raise FileNotFoundError(f"Image not found: {image_path}")# 方法1:直方图均衡化(灰度图)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)equalized = cv2.equalizeHist(gray)# 方法2:CLAHEclahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))clahe_img = clahe.apply(gray)# 方法3:伽马校正(彩色图)gamma = 1.5gamma_corrected = np.power(img / 255.0, gamma) * 255.0gamma_corrected = gamma_corrected.astype(np.uint8)# 显示所有结果cv2.imshow("Original", img)cv2.imshow("Histogram Equalized", equalized)cv2.imshow("CLAHE", clahe_img)cv2.imshow(f"Gamma (γ={gamma})", gamma_corrected)cv2.waitKey(0)cv2.destroyAllWindows()# 运行示例
enhance_contrast("C:/Users/longc/Desktop/60000_8/source.jpg")
如何选择最佳方法?
- 整体偏暗/亮 → 直方图均衡化或CLAHE
- 局部光照不均 → CLAHE
- 暗部细节丢失 → 伽马校正(γ>1)
- 需要锐化边缘 → 结合对比度增强和锐化算法(如Unsharp Mask)
运行前确保安装OpenCV:
pip install opencv-python numpy
相关文章:
【图像处理】:opencv实现模糊图像处理和对比度增强
opencv实现模糊图像处理和对比度增强 模糊图像处理**方法 1:Wiener 反卷积(已知模糊核)****方法 2:非锐化掩码(Unsharp Masking)****方法 3:拉普拉斯锐化(Laplacian Sharpening&…...
@SentinelResource注解,sentinel限流,熔断自定义返回 ,配合nacos完成持久化
sentinel熔断和限流自定义返回 如果发生熔断或者限流,会返回500错误页面,希望返回自定义兜底数据,这时候可使用SentinelResource实现 操作 1、添加统一返回结果类 ( 在做自定义处理的时候, 要求方法的声明必须一致) import lombok.Data;…...
AJAX简介
一、AJAX 是什么? AJAX(Asynchronous JavaScript and XML)是一种异步网络请求技术,它的核心是允许网页在不刷新整个页面的情况下,向服务器发送或接收数据,并动态更新页面内容。简单来说,AJAX 让…...
平台算法暗战:ebay欧洲站搜索词长度同比缩短2.3字符的应对策略
随着电商平台算法的快速更迭,卖家迎来了新的挑战。根据最近数据显示,eBay欧洲站搜索关键词的平均长度同比缩短了2.3个字符。这看似细微的变化,实则在搜索曝光、排名权重、流量分发等多方面带来实质性影响。 那么,这次「搜索词缩水…...
记录一次家里宽带 被修改带宽维权的事情
去年8月份发现家里电信宽带被限制带宽 原本上行300m被限制成40m 并且没有任何通知和短信 打10000号要求上门测速 拍下测速结果留作证据 然后等他们处理的同时 开始给我反馈是pcdn 然后说是工信部统一下调带宽 投诉12345 12300 不过这些投诉其实并不会给他们造成什么压…...
刀客doc:亚马逊把Netflix的广告价格打下来了
01 要说在美国广告市场里,未被巨头垄断且最为活跃的板块,应该就是流媒体了。 根据群邑智库的数据,2025年CTV广告将以20%的增速,冲刺460亿美元的市场规模。到2029年,全球流媒体电视的广告收入将占电视总收入的37.5%。…...
【文献阅读】NVILA: Efficient Frontier Visual Language Models
发表于2025年3月6日 英伟达团队 摘要 近年来,视觉语言模型(VLMs)在准确性方面取得了显著进展。然而,其效率却较少受到关注。本文介绍了NVILA,这是一系列旨在优化效率和准确性的开源视觉语言模型。在VILA的基础上&am…...
驱动-创建设备节点
字符设备相关的知识面:已经了解了 申请设备号、注册字符设备。 已经将字符设备添加进入内核了,那么如何使用这个字符设备呢? Linux 里面一切皆文件,对内核中的字符设备进行文件操作如打开、关闭、读、写等,但是并不支持…...
Vue知识点(5)-- 动画
CSS 动画是 Vue3 中实现组件动画效果的高效方式,主要通过 CSS transitions 和 keyframes 动画 CSS Keyframes(关键帧动画) 用来创建复杂的动画序列,可以精确控制动画的各个阶段。 核心语法: keyframes animationNa…...
基于AT89C52单片机的植物浇水与智能空气土壤环境监测报警系统
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90579535?spm1001.2014.3001.5503 功能介绍: 1、功能:液晶器显示检测到的土壤湿度与空气温度与光照强度;温度和光照大于设置的…...
指针进阶( 上 )
内容大纲 一.字符指针 二.指针数组 三.数组指针 四. 数组传参和指针传参 引言 指针是什么呢?指针是用来干什么的呢?指针的大小是多少呢?指针的大小具有什么属性呢? 解答:指针是个变量,用来存放变量地…...
java设计模式-外观模式
外观模式(facade) 基本介绍 1、外观模式也叫过程模式,外观模式为子系统中的一组接口提供一个一致的界面,次模式定义一个高层接口,这个接口是的这一子系统更加容易使用。 2、外观模式通过定义一个一直的接口,用以屏蔽内部子系统的细节&#x…...
selenium元素获取
from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Chrome()driver.maximize_window()#最大化窗口 #隐式等待 driver.implicitly_wait(10)#打开网页 driver.get("https://www.zhipin.com/beijing/?kacity-sites-101010100&q…...
23种设计模式-行为型模式-访问者
文章目录 简介场景解决完整代码核心实现 总结 简介 访问者是一种行为设计模式,它能把算法跟他所作用的对象隔离开来。 场景 假如你的团队开发了一款能够使用图像里地理信息的应用程序。图像中的每个节点既能代表复杂实体(例如一座城市)&am…...
springMVC-拦截器详解
拦截器 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别:拦截器是AOP思想的具体应用。 过滤器 servlet规范中的一部分,任何ja…...
centos练习docker<基础>
这半喇月发生了很多事,很无谓很闹心,今天重拾起自己,做做功课写写字 文章目录 一、准备二、实践2.1 安装docker2.2docker镜像操作2.2.1 下载镜像等基本操作2.2.2 启动容器等基本操作2.2.3 修改页面2.2.4 保存镜像2.2.5 分享社区 总结 一、准…...
GPT-5、o3和o4-mini即将到来
原计划有所变更: 关于我们应有何期待的一些零散想法。 深度研究(Deep Research)确实强大但成本高昂且速度较慢(当前使用o3模型)。即将推出的o4-mini在性能上可能与o3相近,但将突破这些限制,让全球用户——甚至免费用户(尽管会有速率限制)——都能用上世界顶级AI研究助…...
EchoMimic 音频驱动照片生成视频部署测试
环境:Windows 11 NVIDIA RTX 3070 Laptop 16GB 我配置了阿里云的镜像,要实现一样的效果,你也可以在每一行的命令后加 -i https://mirrors.aliyun.com/pypi/simple/ 如: pip install package_name -i https://mirrors.aliyun.…...
React 和 JSX 中,这些符号 (=>, <, ? :)的用法
在 React 和 JSX 中,这些符号 (>, <, ? :) 都是 JavaScript 的语法特性,但它们在 JSX 中有特殊的用法和规则。下面我会详细解释每个符号的用途、语法规则以及在 React/JSX 中的具体应用。 1. 箭头函数 > (Arrow Function) 基本语法࿱…...
mindie1.0新特性及调试问题总结
说明 最近在ascend 310P3上使用mindie 1.0部署模型,跟我以前使用的mindie 1.0_rc2比,有很多新的特性和变化,导致部署出现了不少问题。这里罗列下我的发现,希望对其他人有用。 特性1:需要显式配置share_memory 报错信…...
【Axure原型案例】悦购APP产品原型设计
一、项目背景 在时尚潮流蓬勃发展的当下,潮流服装市场潜力巨大。悦购APP作为一款专注于潮流服装的商城APP,旨在为用户提供丰富多样的潮流服装选择,打造便捷、时尚的购物体验。本次使用Axure进行产品原型设计,旨在将产品理念和功能…...
React 列表渲染
你可能经常需要通过 JavaScript 的数组方法 来操作数组中的数据,从而将一个数据集渲染成多个相似的组件。在这篇文章中,你将学会如何在 React 中使用 filter() 筛选需要渲染的组件和使用 map() 把数组转换成组件数组。 1.如何通过 JavaScript 的 map() 方…...
《深度解析LightGBM与MySQL数据集成:高效机器学习的新范式》
在机器学习工程实践中,数据与模型的高效交互一直是制约算法性能发挥的关键瓶颈。LightGBM作为梯度提升决策树框架的杰出代表,其与关系型数据库MySQL的深度集成能力,为数据科学家提供了从原始数据到预测结果的完整解决方案。这种集成不是简单的…...
使用 node.js 和 MongoDB 编写一个简单的增删改接口 demo
文章目录 前言一、环境准备二、项目结构三、环境变量四、连接数据库3.1. connect.js 文件 五、定义数据模型5.1. BannerModel.js 文件 六、实现 server 接口6.1. server.js 文件 七、服务文件7.1. app.js 文件 八、感谢 前言 Mongoose 是一个在 Node.js 环境中操作 MongoDB 数据…...
React-06React中refs属性(字符串refs,回调形式,React.createRef() )
1.React中refs属性 绑定到render输出的任何组件上,通过this.ref.绑定名直接操作DOM元素或获取子组件的实例。 2.绑定refs实例 2.1 字符串refs(已经过时参考官网API) 字符串(string)的ref存在一定的效率问题 <input refinput1 type"text" placehole…...
如何在 Windows 系统上安装 n8n:两种方法详解
如何在 Windows 系统上安装 n8n:两种方法详解 摘要 本文详细介绍了在 Windows 系统上安装 n8n 的两种方法:直接安装和 Docker 部署。直接安装适合初学者,通过 Node.js 和 npm 快速完成;Docker 部署适合需要更高灵活性和可移植性…...
LETTERS(信息学奥赛一本通-1212)
【题目描述】 给出一个rowcol的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。 【输入】 第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。 接…...
【kind管理脚本-3】脚本函数说明文档 —— 便捷使用 kind 创建、删除、管理集群脚本
下面是一份详细的说明文档,介绍该脚本的功能、用法及各部分的含义,供您参考和使用: Kind 集群管理脚本说明文档 此脚本主要用于管理 Kind(Kubernetes IN Docker)集群,提供创建、删除、导出 kubeconfig、加…...
【kind管理脚本-1】便捷使用 kind 创建、删除、管理集群脚本
目录结构 . ├── cluster-demo-setting │ ├── 3node-demo.yaml │ └── ingress-cluster-demo.yaml └── kind-tool.sh简单使用 # 进入防止 kind-tool.sh 的目录 $ cd kt-dir/ # 用 alias 给个别名,更便于使用 $ alias kt"./kind-tool.sh"…...
Python-Django+vue仓库管理系统功能说明
❥(^_-) 上千个精美定制模板,各类成品Java、Python、PHP、Android毕设项目,欢迎咨询。 ❥(^_-) 程序开发、技术解答、代码讲解、文档,💖文末获取源码+数据库+文档💖 💖软件下载 | 实战案例 💖文章底部二维码,可以联系获取软件下载链接,及项目演示视频。 本项目…...
蓝桥备赛指南(14):树的直径与重心
树的直径 什么是树的直径?树的直径是树上最长的一条链,当然这条链并不唯一,所以一棵树可能有多条直径。直径由两个顶点u、v来决定,若由一条直径(u,v),则满足一下性质: 1)u、v的度数…...
Java RPC 框架是什么
Java RPC 框架是什么 Java RPC 框架 是用于在分布式系统中实现远程过程调用(Remote Procedure Call,RPC)的工具集。RPC 是一种通信协议,它允许程序调用位于远程服务器上的函数或方法,就像调用本地函数一样透明。RPC 框…...
MySQL 查询重写怎样把复杂查询变简单,让查询提高一个“速”!
目录 一MySQL 查询重写基础概念 什么是查询重写 为什么需要查询重写 二MySQL 查询重写的工作原理 查询解析阶段 重写规则应用阶段 生成执行计划阶段 查询重写流程图 三MySQL 查询重写的实现方式 使用 MySQL 内置的查询优化器 自定义查询重写插件 查询重写介绍图 四…...
HTML静态网页成品作业(HTML+CSS)——阜阳剪纸介绍设计制作(1个页面)
🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…...
Docker Swarm集群搭建与管理全攻略
文章目录 一、节点准备二、初始化 manager 节点三、管理 swarm 集群中的 worker 节点1、添加 worker 节点2、查看 worker 节点3、删除 worker 节点 四、管理 swarm 集群服务1、创建服务2、查看服务3、删除服务 五、管理 swarm 节点服务1、节点标签管理2、创建服务3、查看服务4、…...
kafka消费延迟
一、背景 PAAS1220 CRM系统 系统版本: BC Linux For Euler release 21.10 二、故障现象 grafana上kafka指标:指标消费延迟过高 容器内部kafka消费情况:没有消费者进行消费 查看webgate页面:应用性能--信息总览,查看到实例全…...
Java学习笔记(多线程):ReentrantLock 源码分析
本文是自己的学习笔记,主要参考资料如下 JavaSE文档 1、AQS 概述1.1、锁的原理1.2、任务队列1.2.1、结点的状态变化 1.3、加锁和解锁的简单流程 2、ReentrantLock2.1、加锁源码分析2.1.1、tryAcquire()的具体实现2.1.2、acquirQueued()的具体实现2.1.3、tryLock的具…...
计算机视觉算法实战——实例分割算法深度解析
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ 一、实例分割领域概述 实例分割(Instance Segmentation)是计算机视觉领域中的一个重要任务,它…...
ARM分拣机vs传统PLC:实测数据揭示的4倍效率差
在苏州某新能源汽车零部件仓库,凌晨3点的分拣线上依然灯火通明。8台搭载ARM Cortex-A72处理器的智能分拣机正在以每秒3件的速度处理着形状各异的电池包组件,它们通过MES系统接收订单信息,自主规划最优路径,将不同规格的零部件精准…...
IDEA 中遇到 Git Log 界面不显示问题的解决方案
IntelliJ IDEA 中遇到 Git Log 界面不显示问题的解决方案。以下是根据文章内容整理的解决步骤: (我清理 IDEA 缓存后成功解决) 问题描述 在 IntelliJ IDEA 中,Git 的 Log 界面没有任何显示。其他选项和界面工作正常。使用命令行查询 Git 日…...
虚幻引擎UActorComponent的TickComponent详解
文章目录 前言一、TickComponent 的作用二、函数签名与参数三、 使用步骤1.启用 Tick2. 重写 TickComponent 四、实际示例:旋转组件4.1 头文件 URotatingComponent.h4.2 源文件 URotatingComponent.cpp4.3 使用组件 五、注意事项六、常见问题总结 前言 在虚幻引擎&…...
如何迁移 GitHub 仓库到 GitLab?
如何迁移 GitHub 仓库到 GitLab? 一、基础迁移方法(保留完整历史) 1.在 GitLab 创建空仓库 1.登录 GitLab 并新建项目,选择「空白项目」,不要初始化 README 或 LICENSE 文件 2.复制新建仓库的 HTTPS/SSH 地址&a…...
深入理解C++面向对象特性之一 多态
欢迎来到干货小仓库,堪比沙漠!!! 从“Hello World”到改变世界,中间隔着千万次再试一次. 1.多态的概念 多态的概念:通俗来说,就是多种形态, 具体点就是去完成某个行为,当不同的对象去完成时会 产生出不同的…...
linux下MMC_TEST的使用
一:打开如下配置,将相关文件编译到内核里: CONFIG_MMC_TEST CONFIG_MMC_DEBUG CONFIG_DEBUG_FS二:将mmc设备和mmc_test驱动进行绑定 2.1查看mmc设备编号 ls /sys/bus/mmc/drivers/mmcblk/mmc0:aaaa2.2将mmc设备与原先驱动进行解绑 echo mmc0:aaaa >...
数字人技术的核心:AI与动作捕捉的双引擎驱动(2/10)
摘要:数字人技术从静态建模迈向动态交互,AI与动作捕捉技术的深度融合推动其智能化发展。尽管面临表情僵硬、动作脱节、交互机械等技术瓶颈,但通过多模态融合技术、轻量化动捕方案等创新,数字人正逐步实现自然交互与情感表达。未来…...
Java Web从入门到精通:全面探索与实战(二)
Java Web从入门到精通:全面探索与实战(一)-CSDN博客 目录 四、Java Web 开发中的数据库操作:以 MySQL 为例 4.1 MySQL 数据库基础操作 4.2 JDBC 技术深度解析 4.3 数据库连接池的应用 五、Java Web 中的会话技术ÿ…...
从个人博客到电商中台:EdgeOne Pages的MCP Server弹性架构×DeepSeek多场景模板实测报告
什么是EdgeOne Pages? EdgeOne Pages 是腾讯云推出的一站式边缘开发与部署平台,基于全球边缘节点网络和 Serverless 架构,为开发者提供从代码托管到全球分发的全流程服务。其核心价值在于将边缘计算能力与现代 Web 开发范式深度融合…...
【C++】优先级队列+反向迭代器
priority_queue的介绍 通常用堆来实现,能在O(log n)的时间复杂度内插入和提取最高(或最低)优先级的元素。 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的(默认情况)。此…...
HOW - 缓存 React 自定义 hook 的所有返回值(包括函数)
目录 场景优化方案示例延伸例子:为什么这很重要?常见的请求 hook 封装优化前优化后优化点一览优化后的 useLoadData使用方式示例:优点回顾 场景 如果你写了一个自定义 Hook,比如 useMyHook(),它暴露出某些值或函数给外…...
AIDD-人工智能药物设计-网络药理学-多组学与网络药理学分析揭示龟龄集治疗少精症的机制
IF6.7|多组学与网络药理学分析揭示龟龄集治疗少精症的机制 2024年10月28日,海军军医大学张卫东教授团队在Phytomedicine(IF6.7)上发表了题为“Multi-omics and network pharmacology approaches reveal Gui-Ling-Ji alleviates oligoastheno…...