直方图均衡化(调节图像亮度、对比度)

news2024/11/24 22:43:46

直方图均衡化(调节图像亮度、对比度)

本篇目录

🦄 一、前言

🦄 二、直方图均衡化概念

🦄 三、直方图均衡化实例

(1)、灰度图像的均衡处理实例

①、卡通人物灰度图像均衡处理

②、卡通猫头鹰灰度图像均衡处理

③、弹琴猫灰度图像均衡处理

(2)、彩色图像的均衡处理实例

🦄 四、总结


🦄 一、前言

2ab463de26a541818271efa176656ae6.png

  今天看了一禅的视频,挺认同:

  我经常在文章中提到:人的一生能遇到真心对你好的不容易,如果遇到了,就要好好珍惜这来之不易的缘分,这种缘分不是特指男女之间,是指所有的缘分,包括家人,朋友,甚至是陪伴在你身边的各种小宠物。。。

  什么是真心对你好的人呢?一禅在文中做了很好的总结:

  如何知道一个人心里有没有你:一个人心里有没有你,其实很明显,因为他只会在心情好,有时间的状态下才会爱你,他只能接受你符合他心意的一面,一旦你不合他意了,他第一个推开的就是你,分分钟就能放弃你,他对你的付出,只不过是权衡利弊后的选择,只要遇到任何矛盾,他就会觉得离开你,他会过得更好,他不想解决问题,就只能解决你

  我从小内向自闭,宅得厉害,认识的人不多,他们绝大部分都对我很好,不会刻意伤害我,所以我对人从来都是不设防,真心相待。

  可是最近几年,我在自己家里就被迫体验了长时间。。。高科技营造的声音幻境和。。。的考验,无处可逃,知道了人性的另一面如此。。。你当别人是朋友(纯粹无杂念),别人呢?他(她)可以随时随意就伤害你,原因其实很简单:因为他(她)心里从来没有你,你对于他(她)们来说,只不过是愚弄伤害的对象而已,一切只不过是为了要全方面了解你的性格爱好和各种弱点,方便进一步全面打击你!

  人生一直都在选择中,你选择时别人也在选择着,当你被人放弃时,不需要伤心难过,因为这些你遇到的人教会你一个事实真相:在他(她)们心里,你没有那么重要!失去一些不会对你好的人,没有什么可惜的,因为你从来就没有真正拥有过他(她)们对你的真心和珍惜,你所有经历的,不过只是一段段分贝不同,振幅频率不同的声音而已,可能来自真人,也可能是电脑合成,一切并不真实存在,是混合心理学、人工智能、虚拟世界、。。。各种高科技技术混合的作弄。没有拥有过,何来失去?幻象而已,醒过来就好了。

  人生不长,一场相遇,一生铭记,不负遇见,不曾亏欠,花自开不是为了被人欣赏,人自律自强不是为了被人称赞。。。很多事情,只要不是你自己主动故意去发生,无论被迫经历什么,都不会改变你自己原来最初的样子,你还会是原来的那个自己,单纯而美好。

  日升日落,总有黎明,虽未天晴,但依旧要为困境中不曾迷失的自己而点赞!为不被岁月蒙尘,依旧保持内心纯粹善良的自己点赞!为那些跟我一样经历着本质相同但表现形式各不相同幻境中的同行者们点赞!我们很弱小很无助,有苦说不出,但我们活得有骨气有尊严(无论遭遇到什么)!!!

  我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却,每次走过,都是一次收获,过去的,就让它过去吧,别管那是一个玩笑还是谎话,路在脚下,其实并不复杂,只要记得你是你呀。。。

逆境清醒

2023.4.18

f3751a45350f4910835ba888fb79118a.gif

🦄 二、直方图均衡化概念

  图像直方图是反映图像像素分布的统计表,横坐标代表像素值的取值区间,纵坐标代表每一像素值在图像中的像素总数或者所占的百分比。

  灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数。

  直方图均衡化是一种简单有效的图像增强技术。根据直方图的形态可以判断图像的质量,通过调控直方图的形态可以改善图像的质量。

  直方图均衡化是将原始图像通过函数变换,调控图像的灰度分布,得到直方图分布合理的新图像,以此来调节图像亮度、增强动态范围偏小的图像的对比度。

  直方图均衡化是一种经典的图像处理算法,用以改善图像的亮度和对比度。

  图像直方图均衡化目的:使其原本分布集中的像素值,均衡的分布到所有可取值的范围,这样,图像就既有明亮也有灰暗,对比度和亮度就得到了改善。也就是说通过直方图均衡化对图像进行非线性拉伸,重新分配图像像素值,本质上是根据直方图对图像进行线性或非线性灰度变换。

  直方图均衡化的基本思想:对图像中占比大的灰度级进行展宽,而对占比小的灰度级进行压缩,使图像的直方图分布较为均匀,扩大灰度值差别的动态范围,从而增强图像整体的对比度。

  因此,在人眼视觉里,经过直方图均衡化的图像会比没有经过处理的图像更加清晰,换句话说,也就是对于一组相同构图的图像而言,直方图均匀分布的图像视觉效果会比较好

  例如,直方图均衡化可以把原始图像的直方图调整到均匀分布,增加像素之间灰度值差别的动态范围,从而增强图像整体的对比度。

  通过累积分布函数(cumulative distribution function, CDF)可以实现将原图像 r 的分布转换成 s 的均匀分布,累计分布函数(CDF)就是是概率密度函数(probability density function, PDF)的积分。

实现直方图均衡的转换函数:

(1)计算原始灰度图像的直方图;

(2)通过直方图累加计算原始图像的累计分布函数 CDF;

(3)基于累计分布函数 CDF,通过插值计算得到新的灰度值。

原理公式(摘自网络):

直方图均衡化流程及示例:


  直方图均衡化可以看作是一种映射,对原图中的像素点施加映射使其转换为图。在直方图均衡化中,我们保持像素值的单调性,即:

其中和为中的像素值,和为中的像素值。由和之间的像素值是一一对应且单调的,可以得出:

即区间中的像素数和区间中的像素数是相等的。因此,每个对应的像素值的累积概率函数是相等的:

我们希望映射后的图直方图分布是均衡的,即是理想情况下,图中像素值的概率分布是服从均匀分布的,即,则:

 这样我们就得到了实现均衡化的映射方式。

OpenCV 函数 cv2. equalizeHist 可以实现直方图均衡化

img1=cv2.qualizeHist(imgsrc[, dst]) 

参数说明:

  • imgsrc:输入图像
  • dst:返回值,输出图像,直方图均衡化

🦄 三、直方图均衡化实例

(1)、灰度图像的均衡处理实例

①、卡通人物灰度图像均衡处理

导入模块

#-*- coding: UTF-8 -*-
import cv2
from matplotlib import pyplot as plt
import numpy as np

加入中文显示指引(防止中文字符显示异常,出现白方块的情况)

import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False

导入图片,src是原图,img是以单通道灰度图像形式导入图片

src=cv2.imread("girl2b.jpg")
img=cv2.imread("girl2b.jpg",0)

绘制直方图

hist=cv2.calcHist([img],[0],None,[256],[0,256])
plt.figure()
plt.title("灰度图像图像直方图")
plt.xlabel("Bins像素值的取值区间")
plt.ylabel("每一像素值在图像中的像素总数")
plt.plot(hist)
plt.xlim([0,256])
plt.show()

 同时绘制原图和经过均衡化处理后的图片做对比

eq=cv2.equalizeHist(img)
cv2.imshow("原图 直方图均衡化",np.hstack([img,eq]))

完整源代码:

#-*- coding: UTF-8 -*-
import cv2
from matplotlib import pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
src=cv2.imread("girl2b.jpg")
img=cv2.imread("girl2b.jpg",0)
hist=cv2.calcHist([img],[0],None,[256],[0,256])
plt.figure()
plt.title("灰度图像图像直方图")
plt.xlabel("Bins像素值的取值区间")
plt.ylabel("每一像素值在图像中的像素总数")
plt.plot(hist)
plt.xlim([0,256])
plt.show()
eq=cv2.equalizeHist(img)
cv2.imshow("原图 直方图均衡化",np.hstack([img,eq]))
cv2.waitKey(0)

运行效果:

 

②、卡通猫头鹰灰度图像均衡处理

导入模块

#-*- coding: UTF-8 -*-
import cv2
from matplotlib import pyplot as plt
import numpy as np

加入中文显示指引(防止中文字符显示异常,出现白方块的情况)

import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False

导入图片,以单通道灰度图像形式导入图片

img = cv2.imread(r'bird1.png', cv2.IMREAD_GRAYSCALE)

绘制直方图

equ = cv2.equalizeHist(img) 
plt.figure("原图")
plt.hist(img.ravel(), 256)
plt.figure("直方图均衡化")
plt.hist(equ.ravel(), 256)
plt.show()
cv2.imshow('原图', img)
cv2.imshow('直方图均衡化', equ)

完整源代码:

import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
img = cv2.imread(r'bird1.png', cv2.IMREAD_GRAYSCALE)
equ = cv2.equalizeHist(img) 
plt.figure("原图")
plt.hist(img.ravel(), 256)
plt.figure("直方图均衡化")
plt.hist(equ.ravel(), 256)
plt.show()
cv2.imshow('原图', img)
cv2.imshow('直方图均衡化', equ)
plt.show()
cv2.waitKey(0)

运行效果:

原图和原图直方图:

原图原图直方图

原图经直方图均衡化后的效果和经均衡化处理后的图像的直方图:

原图经直方图均衡化后的效果经均衡化处理后的图像的直方图

③、弹琴猫灰度图像均衡处理

完整源代码:

import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
img = cv2.imread("cat1a.png", flags=0)  
img1 = cv2.equalizeHist(img) 
fig = plt.figure(figsize=(7,7))
plt.subplot(221), plt.title("原始图像"), plt.axis('off')
plt.imshow(img, cmap='gray', vmin=0, vmax=255) 
plt.subplot(222),plt.title("均衡化后的图像"), plt.axis('off')
plt.imshow(img1, cmap='gray', vmin=0, vmax=255) 
histImg, bins = np.histogram(img.flatten(), 256)
plt.subplot(223, yticks=[]), plt.bar(bins[:-1], histImg)
plt.axis([0,255,0,np.max(histImg)])
plt.title("原始图像的直方图"), plt.axis([0,255,0,np.max(histImg)])
histEqu, bins = np.histogram(img1.flatten(), 256)
plt.subplot(224, yticks=[]), plt.bar(bins[:-1], histEqu)
plt.title("均衡图像直方图"), plt.axis([0,255,0,np.max(histImg)])
plt.show()


运行效果图:

(2)、彩色图像的均衡处理实例

  这里有一张猫咪弹吉他的图片,色调偏蓝,不够清晰:

我们把这张图片的直方图打印出来看看:

 

我们可以将彩色图像分解成三个颜色通道,然后在一个直方图中显示三种颜色的情况

import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread("cat1b.jpg")
colors=cv2.split(img)
colorsNys=("b","g","r")
for(color,colorsNy) in zip(colors,colorsNys):
    hist=cv2.calcHist([color],[0],None,[256],[0,256])
    plt.plot(hist,color=colorsNy)
    plt.xlim([0,256])
plt.show()

运行效果:

我们可以看到直方图显示这幅图像的颜色分布不均匀,

如果我们对这副彩色图像采取均衡处理,效果如何呢?

  彩色图像的均衡处理方法,是将图像颜色分解后按各自颜色的分布函数处理。

import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
img0 = cv2.imread("cat1b.jpg", -1)
img = cv2.imread("cat1b.jpg", 1)
(b, g, r) = cv2.split(img)
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)
result = cv2.merge((bH, gH, rH))
cv2.imshow("原图", img0)
cv2.imshow("均衡化后的图像", result)
cv2.waitKey(0)
plt.show()

运行效果:

原图均衡化处理后的图

 均衡化处理后的图像视觉效果得到改善

t经均衡化处理后的图像的直方图如下: 

🦄 四、总结

  如果我们碰到图片视觉效果不佳,例如灰蒙蒙的,很多细节性的东西都看不太清。这时,我们可以通过直方图均衡化的方法调整图片视觉效果。

  方法是:首先画一下它的直方图,来看一下像素分布情况。通常效果不佳的图像,大部分在灰度值较高的部分,而且分布很集中。这时我们可以通过图像的均衡处理,即将图像颜色分解后按照灰度的累积分布函数处理或按各自颜色的分布函数处理。直方图均衡化处理后的直方图分布比较分散,能够涵盖整个x轴。图片视觉效果得到改善。

  直方图均衡化的作用:增强图像数据的对比度有利于特征的提取,直方图均衡化可以自动调整图像的对比度。不论是从肉眼还是算法来看都有帮助。
  

直方图实例详解(颜色直方图、灰度直方图)

         推荐阅读:

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

 语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png

cb4b0d4015404390a7b673a2984d676a.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png

938bc5a8bb454a41bfe0d4185da845dc.jpeg

0a4256d5e96d4624bdca36433237080b.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg

0f09e73712d149ff90f0048a096596c6.png

40e8b4631e2b486bab2a4ebb5bc9f410.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png

daecd7067e7c45abb875fc7a1a469f23.png

17b403c4307c4141b8544d02f95ea06c.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png

c5feeb25880d49c085b808bf4e041c86.png

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png

bba02a1c4617422c9fbccbf5325850d9.png

37d6aa3e03e241fa8db72ccdfb8f716b.png

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png

6176c4061c72430eb100750af6fc4d0e.png

1f53fb9c6e8b4482813326affe6a82ff.png

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

80007dbf51944725bf9cf4cfc75c5a13.png

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg

1750390dd9da4b39938a23ab447c6fb6.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png

38266b5036414624875447abd5311e4d.png

6824ba7870344be68efb5c5f4e1dbbcf.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

fffa2098008b4dc68c00a172f67c538d.png

5218ac5338014f389c21bdf1bfa1c599.png

c6374d75c29942f2aa577ce9c5c2e12b.png

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/431934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音频编辑开发SDK Audio DJ Studio for .NET Crack

11.7版本--Audio DJ Studio for .NET是 MultiMedia Soft 开发的 .NET Windows Forms 自定义控件,可以轻松地向使用Microsoft Visual Studio编写的Winform和WPF 应用程序添加声音播放和混音功能;由于与 DirectShow 编解码器和 BASS 库的集成,两…

【UITableView和UITableViewCell的常见属性 Objective-C语言】

一、UITableView和UITableViewCell的常见属性, 1.我们说,这些属性里面, 2.这些是不是都是单元格的属性, 1)这个imageView:是单元格里面的图片框,是不是指的是这个啊, 2)这个textLabel:是指的这个标题上面这个Label吧, 3)这个detailTextLabel:是指的标题下面这…

安装tomcat8,配置服务启动脚本,部署jpress应用

1. 简述静态网页和动态网页的区别。 静态网站顾名思义就是不能动的网站,其中的内容一旦做好就固定了。而动态网站是一种网页编程技术,它可以使得浏览器和服务器可以交互,根据服务器的不同请求动态的生成网页内容。 3. 简述 Webl.0 和 Web2.…

基于STM32的倒车雷达系统设计

目录 前言 一、绪论 1.1 设计背景 1.2 设计内容 二、系统硬件设计 2.1 硬件系统框图 2.2 主控制电路 2.3 超声波电路 2.4 OLED显示电路 2.5 键盘输入电路 2.6 声光报警模块电路 三、系统软件设计 3.1 系统主程序设计 3.2 OLED显示程序设计 3.3 键盘设定程序设计…

设计模式-结构型模式之外观模式

4. 外观模式4.1. 模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式…

C++11 make_shared函数和std::make_unique详解

make_shared的使用: shared_ptr<string> p1 make_shared<string>(10, 9); shared_ptr<string> p2 make_shared<string>("hello"); shared_ptr<string> p3 make_shared<string>(); 好处&#xff1a;减少分配次数 std::s…

大厂面试内幕:阿里内部整理出的5000页Java面试复盘指南,起飞!!!

互联网的技术岗一直是高薪的代名词&#xff0c;特别是大厂&#xff0c;应届生的年薪基本都20W起&#xff0c;比一般的公司高多了。 看下面这张网上热传的大厂应届生薪酬表就知道了&#xff0c;SP offer甚至能拿到30W以上。 技术社区也有晒出高薪offer的同学&#xff1a; 除了薪…

Unity LOD 技术

Unity LOD 技术 LOD(Level of detail) 多层次细节&#xff0c;常用的Unity 优化技术 它是根据物体在游戏画面中所占视图百分比来调用显示不同精度的模型 说白了就是 当物体距离摄像机距离较近时显示高精度模型 当物体距离摄像机距离较远时显示低精度模型 优点&#xff1a;优化…

Python深度学习实现DIY专属个人表情包

引言&#xff1a; 在现代社交媒体的时代&#xff0c;表情包已经成为了人们日常生活中不可或缺的一部分。表情包可以用来表达情感、传递信息&#xff0c;甚至成为一种文化符号。然而&#xff0c;随着表情包的日益普及&#xff0c;大量的表情包已经不能满足人们的需求&#xff0…

如何对图片批量重命名?

对于爱好摄影的朋友们来说&#xff0c;不管是手机还是相机拍摄的照片&#xff0c;在导入电脑后&#xff0c;它们的文件名通常都是一串长长的乱码。这不仅会导致桌面看起来杂乱无章&#xff0c;还会给我们查找图片带来很多不便&#xff0c;有时候丢失几张图片都发现不了。不过&a…

7、在vscode上利用cmake构建多文件C++工程

文章目录 &#xff08;1&#xff09;创建如下工程文件夹&#xff1a;其中头文件放在include文件夹中&#xff0c;源文件放在src文件夹中&#xff08;2&#xff09;在vscode上打开工程文件夹&#xff0c;在对应的文件夹内建立相应的文件1&#xff09;目录结构2&#xff09;各文件…

【C语言督学训练营 第十一天】三篇文章吃透数据结构中的线性表(二)----- 链表的增删改查与销毁

文章目录 前言一、链表1.基本介绍2.增删改查原理与实战 总结与源码 前言 谭浩强老师说过&#xff1a;“指针是c语言的灵魂”&#xff0c;今天说到的链表就是由C语言的灵魂所筑&#xff0c;学会了链表之后可以使用链表轻松实现树、图等数据结构&#xff0c;可以轻松化解考研数据…

《无线神经调节的微创技术治疗慢性顽固性疼痛:初步观察报告》

**全文概况 **&#xff1a;该文件讨论了一种新型无线和微创神经调节设备&#xff0c;用于治疗之前曾经失败的患者慢性顽固性疼痛。该设备通过经皮植入的电极远程控制&#xff0c;进行高频背根节神经刺激或周围神经刺激。该系统对于患有腰腿疼痛的患者有重要潜力&#xff0c;因为…

车载 Android开发面试习题整合~

随着车联网技术的不断发展和普及&#xff0c;越来越多的汽车厂商开始使用 Android 操作系统作为车载娱乐和信息娱乐系统的核心。在这个趋势下&#xff0c;车载 Android 应用开发程序员的需求也日益增加。 像一些车企大厂在广招这方面的技术人才。给原本处于落寞的Android 开发行…

PTA:C课程设计(7)

山东大学&#xff08;威海&#xff09;2022级大一下C习题集&#xff08;7&#xff09;函数题7-6-1 递增的整数序列链表的插入7-6-2 查找学生链表7-6-3 统计专业人数7-6-4 建立学生信息链表编程题7-7-1 查找书籍7-7-2 找出总分最高的学生函数题 7-6-1 递增的整数序列链表的插入…

五子棋透明棋盘界面设计(C语言)

五子棋透明棋盘设计&#xff0c;漂亮的界面制作。程序设置双人对奕&#xff0c;人机模式&#xff0c;对战演示三种模式。设置悔棋&#xff0c;记录功能&#xff0c;有禁手设置。另有复盘功能设置。 本文主要介绍透明的玻璃板那样的五子棋棋盘的制作。作为界面设计&#xff0c;…

「Bug」OpenCV读取图像为 None 分析

头一次遇到 OpenCV 无法读取图像&#xff0c;并且没有任何提示&#xff0c;首先怀疑的就是中文路径&#xff0c;因为大概率是这个地方出错的&#xff0c;但是修改完依旧是None&#xff0c;这就很苦恼了&#xff0c;分析了下出现None的原因&#xff0c;大概有以下三种情况&#…

ssm--MyBatis基础day01

1.MyBatis概述 1.1 ORM框架 对象关系映射&#xff08;Java中的对象 对应 数据库中的表&#xff09; 1.2 官网地址 mybatis 1.3 MyBatis Plus MyBatis-Plus (baomidou.com)官网 1.4 JPA Java 持久层API 2. MAVEN引入 2.1 配置maven 2.2 导入MyBatis <dependency>…

带你们偷瞄编程绕不开的C语言(三)

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paperjie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C专栏》&#xff0c;笔者用重金(时间和精力)打造&#xff0c;基础知识一网打尽&#xff0c;希望可以帮到…

面试篇-学习Java多线程编程必备:深入理解volatile与synchronized

1. 概述 1.1 Volatile概述 Volatile是Java中的一种轻量级同步机制&#xff0c;用于保证变量的可见性和禁止指令重排。当一个变量被声明为Volatile类型时&#xff0c;任何修改该变量的操作都会立即被所有线程看到。也就是说&#xff0c;Volatile修饰的变量在每次修改时都会强制…