碎碎念
数字图像处理是博主本专业在今年开设的一门课。博主专业是电子信息科学,算是计算机科学的孪生兄弟,这门课因为和机器学习挂钩,所以计划好好领会。虽然大四课程,学校也不会认真教,但学习嘛,靠天靠地怎么能学好呢,还是靠自己最踏实。
正好学习python,就利用python的强大功能,手写一些图像处理函数。
概述
这篇文章的主题是线性运算,包括灰度反转,对数变换,绘制灰度直方图,图像相加,相减等。总体利用openCV包读取图像灰度数值,遍历图像的方法。语句简单易懂,用来熟悉python编程再好不过了
# -------------- 数字图像处理 -------------- #
#----------------------------------------- #
#-----------第三章,基本运算
import cv2
import math
# ##### 灰度反转
cv2.namedWindow("灰度反转")
cv2.namedWindow("原图像")
img1 = cv2.imread("/Users/wch/Desktop/timg-4.jpeg",0)
cv2.imshow("原图像",img1)
for i in range(img1.shape[0]):
for j in range(img1.shape[1]):
img1[i][j] = 255 - img1[i][j]
cv2.imshow("灰度反转",img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
# ##### 对数变换
# 对数变换的系数 c 是一个常数。他的作用是将对数运算后的灰度范围修正到0-255
# 这里我使用的是线性修正,c = 255/log(256)
# 我觉得这里也可以使用其他修正系数,或者修正函数。
# 这样就可以做到图像增强的功能。
cv2