图片处理:对图片进行简单修补、对图片灰度直方图进行绘制

#图片修补
import cv2
import numpy as np
img = cv2.imread('image0.jpg', 1)
#通过代码生成损坏的图片
#画一个三像素的直线
for i in range(200, 300):
    img[i, 200] = (255,255,255)
    img[i, 200+1] = (255, 255, 255)
    img[i, 200-1] = (255, 255, 255)
#再画一个
for i in range(150, 250):
    img[250, i] = (255, 255, 255)
    img[250+1, i] = (255, 255,255)
    img[250-1, i] = (255, 255, 255)
cv2.imwrite('damaged.jpg', img)
cv2.imshow('image', img)
cv2.waitKey(0)

#对破坏的图片进行修补
#1、损坏的图片2、对坏的图片损坏位置求取
import cv2
import numpy as np
img = cv2.imread('damaged,jpg', 1)
cv2.imshow('src', img)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
paint = np.zeros((height,width,1),np.uint8)
#把修补范围标记出来
for i in range(200, 300):
      paint[i, 200]  = 255
      paint[i,200+1] = 255
      paint[i, 200-1] = 255
for j in  range(150, 250):
    paint[250, i] = 255
    paint[250+1, i] = 255
    paint[250-1, i] = 255
cv2.imshow('paint', paint)
#完成图片修补1、损坏的图片2、设置的蒙版
imgDst = cv2.inpaint(img, paint,3, cv2.INPAINT_TELEA)

cv2.imshow('image', imgDst)
cv2.waitKey(0)

#灰度直方图:统计每一个像素灰度出现的概率,X:0-255,Y:P
import cv2
import numpy as np 
import matplotlib.pyplot as plt
img = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
weight = imgInfo[1]
#转化为灰度图
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#count记录每个像素在每一个灰度等级下出现的概率
count = np.zeros(256, np.float)
#遍历图片中的数据
for i in range(0, height):
    for j in range(0,width):
        pixel = gray[i, j]
        #获取像素下标
        index = int(pixel)
        #统计每一个灰度等级出现的个数
        count[index] = count[index] + 1
for i in range(0,255):
    #计算出现概率=某像素等级的总数/像素总数
    count[i] = count[i] / (height * width)
x = np.linspace(0, 255, 256)
y = count
#绘制直方图
plt.bar(x, y, 0.9,alpha=1, color='b')
plt.show()
cv2.waitKey(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MarkJhon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值