画像処理--1

画像処理

  1. 画像二値化処理
%% im2bw 灰度图象变为二值图像
clc
clear

I = imread('999.tif');
imshow(I)

BW = im2bw(I,0.46);

figure,imshow(BW)
import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
path=os.getcwd()+'\\'+'999.jpg'
#二值化处理图像
I=cv2.imread(path)
I=cv2.resize(I,None,fx=0.5,fy=0.5)
BW=cv2.cvtColor(I,cv2.COLOR_BGR2GRAY)
ret,BW=cv2.threshold(BW,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
plt.figure(figsize=(8,8))
plt.subplot(2,2,1)
plt.imshow(I)
plt.subplot(2,2,2)
plt.imshow(BW,cmap='gray')
plt.show()
cv2.waitKey(0)
cv2.destroyAllWindows()

ここに画像を挿入説明

2.画像​​の輝度調整

import cv2
import os
path=os.getcwd()+'\\'+'999.jpg'
#二值化处理图像
I=cv2.imread(path)
I=cv2.resize(I,None,fx=0.5,fy=0.5)
rows,cols,chanels=I.shape
dst=I.copy()
a=1.2
b=100
for i in range(rows):
    for j in range(cols):
        for k in range(3):
            color=I[i,j][k]*a+b
            if color>255:
                dst[i,j][k]=255
            elif color<0:
                dst[i,j][k]=0
cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

ここに画像を挿入説明
ヒストグラム

import cv2
import numpy as np
import matplotlib.pyplot as plt

src = cv2.imread('999.jpg')
src=cv2.resize(src,None,fx=0.5,fy=0.5)
histb = cv2.calcHist([src], [0], None, [256], [0,255])
histg = cv2.calcHist([src], [1], None, [256], [0,255])
histr = cv2.calcHist([src], [2], None, [256], [0,255])

# cv2.imshow(, src)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
plt.figure(figsize=(8,8))
plt.subplot(2,2,1)
plt.imshow(src)
plt.subplot(2,2,2)
plt.plot(histb, color='b')
plt.plot(histg, color='g')
plt.plot(histr, color='r')
plt.show()

画像展開腐食
画像腐食

import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取图片
src = cv2.imread('999.jpg', cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel = np.ones((5,5), np.uint8)
#图像腐蚀处理
erosion = cv2.erode(src, kernel)
# #显示图像
# cv2.imshow("src", src)
# cv2.imshow("result", erosion)
#等待显示
# cv2.waitKey(0)
# cv2.destroyAllWindows()
#显示图像
plt.figure(figsize=(8,8))
plt.subplot(2,2,1)
plt.imshow(src)
plt.subplot(2,2,2)
plt.imshow(erosion)
plt.show()

ここに画像を挿入説明
画像の拡大

# import cv2
# import numpy as np
# import matplotlib.pyplot as plt
# #读取图片
# src = cv2.imread('999.jpg', cv2.IMREAD_UNCHANGED)
# #设置卷积核
# kernel = np.ones((5,5), np.uint8)
# #图像腐蚀处理
# erosion = cv2.erode(src, kernel)
# # #显示图像
# # cv2.imshow("src", src)
# # cv2.imshow("result", erosion)
# #等待显示
# # cv2.waitKey(0)
# # cv2.destroyAllWindows()
# #显示图像
# plt.figure(figsize=(8,8))
# plt.subplot(2,2,1)
# plt.imshow(src)
# plt.subplot(2,2,2)
# plt.imshow(erosion)
# plt.show()

import cv2
import numpy as np
import matplotlib.pyplot as plt
#读取图片
src = cv2.imread('999.jpg', cv2.IMREAD_UNCHANGED)

#设置卷积核
kernel = np.ones((5,5), np.uint8)

#图像膨胀处理
erosion = cv2.dilate(src, kernel)

# #显示图像
# cv2.imshow("src", src)
# cv2.imshow("result", erosion)
#
# #等待显示
# cv2.waitKey(0)
# cv2.destroyAllWindows()
# 显示图像
plt.figure(figsize=(8,8))
plt.subplot(2,2,1)
plt.imshow(src)
plt.subplot(2,2,2)
plt.imshow(erosion)
plt.show()

ここに画像を挿入説明

公開された41元の記事 ウォンの賞賛0 ビュー775

おすすめ

転載: blog.csdn.net/qestion_yz_10086/article/details/104984612