import cv2img0 = cv2.imread('image0.jpg', 0)
img1 = cv2.imread('image0.jpg', 1)
print(img0.shape)
print(img1.shape)
cv2.imshow('src', img0)
cv2.waitKey(0)

import cv2img = cv2.imread('image0.jpg', 1)
dst = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 颜色空间转换 1 data 2 BGR gray
cv2.imshow('dst', dst)
cv2.waitKey(0)
import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
# RGB R=G=B = gray (R+G+B)/3
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):for j in range(0, width):(b, g, r) = img[i, j]gray = (int(b) + int(g) + int(r)) / 3dst[i, j] = np.uint8(gray)
cv2.imshow('dst', dst)
cv2.waitKey(0)
import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):for j in range(0, width):(b, g, r) = img[i, j]b = int(b)g = int(g)r = int(r)gray = r * 0.299 + g * 0.587 + b * 0.114dst[i, j] = np.uint8(gray)
cv2.imshow('dst', dst)
cv2.waitKey(0)
import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
# RGB R=G=B = gray (R+G+B)/3
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):for j in range(0, width):(b, g, r) = img[i, j]b = int(b)g = int(g)r = int(r)# 浮点转定点:gray = r * 0.299 + g * 0.587 + b * 0.114# 乘除转位移:gray = (r*1+g*2+b*1)/4gray = (r + (g << 1) + b) >> 2dst[i, j] = np.uint8(gray)
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dst = np.zeros((height, width, 1), np.uint8)
for i in range(0, height):for j in range(0, width):grayPixel = gray[i, j]dst[i, j] = 255 - grayPixel
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):for j in range(0, width):(b, g, r) = img[i, j]dst[i, j] = (255 - b, 255 - g, 255 - r)
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2img = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
for m in range(100, 300):for n in range(100, 200):# pixel ->10*10if m % 10 == 0 and n % 10 == 0:for i in range(0, 10):for j in range(0, 10):(b, g, r) = img[m, n]img[i + m, j + n] = (b, g, r)
cv2.imshow('dst', img)
cv2.waitKey(0)

import cv2
import numpy as np
import randomimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dst = np.zeros((height, width, 3), np.uint8)
mm = 8 # 水平方向上和竖直方向都有可能是8
for m in range(0, height - mm): # -mm是为了防止矩阵越界,同时这里减了mm,所以生成的时候下方和右方会有很色的边框for n in range(0, width - mm):index = int(random.random() * 8) # random.random()是0-1,所以index是0-8(b, g, r) = img[m + index, n + index]dst[m, n] = (b, g, r)
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2img0 = cv2.imread('image0.jpg', 1)
img1 = cv2.imread('image1.jpg', 1)
imgInfo = img0.shape
height = imgInfo[0]
width = imgInfo[1]
# ROI感兴趣范围,这个要比2张图片的范围都小
roiH = int(height / 2)
roiW = int(width / 2)
img0ROI = img0[0:roiH, 0:roiW]
img1ROI = img1[0:roiH, 0:roiW]
# dst
dst = cv2.addWeighted(img0ROI, 0.5, img1ROI, 0.5, 0) # add src1*a+src2*(1-a)
# 1 src1 2 a 3 src2 4 1-a
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2img = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
cv2.imshow('src', img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度处理
imgG = cv2.GaussianBlur(gray, (3, 3), 0) # 高斯滤波
dst = cv2.Canny(img, 50, 50) # 图片卷积——》th,双阀值
cv2.imshow('dst', dst)
cv2.waitKey(0)

水平方向 垂直方向
[1 2 1 [ 1 0 -10 0 0 2 0 -2
-1 -2 -1 ] 1 0 -1 ]
import cv2
import numpy as np
import mathimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
cv2.imshow('src', img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dst = np.zeros((height, width, 1), np.uint8)
for i in range(0, height - 2):for j in range(0, width - 2):gy = gray[i, j] * 1 + gray[i, j + 1] * 2 + gray[i, j + 2] * 1 - gray[i + 2, j] * 1 - gray[i + 2, j + 1] * 2 - \gray[i + 2, j + 2] * 1gx = gray[i, j] + gray[i + 1, j] * 2 + gray[i + 2, j] - gray[i, j + 2] - gray[i + 1, j + 2] * 2 - gray[i + 2, j + 2]grad = math.sqrt(gx * gx + gy * gy)if grad > 50: # 50为域值dst[i, j] = 255else:dst[i, j] = 0
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dst = np.zeros((height, width, 1), np.uint8)
for i in range(0, height):for j in range(0, width - 1):grayP0 = int(gray[i, j])grayP1 = int(gray[i, j + 1])newP = grayP0 - grayP1 + 150if newP > 255:newP = 255if newP < 0:newP = 0dst[i, j] = newP
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
cv2.imshow('src', img)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
dst = np.zeros((height, width, 3), np.uint8)
for i in range(0, height):for j in range(0, width):(b, g, r) = img[i, j]b = b * 1.5g = g * 1.3if b > 255:b = 255if g > 255:g = 255dst[i, j] = (b, g, r)
cv2.imshow('dst', dst)
cv2.waitKey(0)

import cv2
import numpy as npimg = cv2.imread('image0.jpg', 1)
cv2.imshow('src', img)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dst = np.zeros((height, width, 3), np.uint8)
# 这里从-4开始,所以边界值要从4开始
for i in range(4, height - 4):for j in range(4, width - 4):array1 = np.zeros(8, np.uint8)for m in range(-4, 4): # 定义8*8的小方块for n in range(-4, 4):p1 = int(gray[i + m, j + n] / 32) # 灰度等级划分为8个段,每个为256/8array1[p1] = array1[p1] + 1currentMax = array1[0]l = 0 # 记录是哪个段for k in range(0, 8): # 求最大值if currentMax < array1[k]:currentMax = array1[k]l = k# 简化 均值for m in range(-4, 4):for n in range(-4, 4):# l是处于哪一个灰度段,32是它的灰度等级# 小于等于下一个灰度段,保证处于范围之内if gray[i + m, j + n] >= (l * 32) and gray[i + m, j + n] <= ((l + 1) * 32):(b, g, r) = img[i + m, j + n]dst[i, j] = (b, g, r)
cv2.imshow('dst', dst)
cv2.waitKey(0)

下一篇:赞颂木棉花的诗句