The image processing python-- 1 (click display coordinates, turn gray, dilation, erosion)

1. Click on the image display coordinates, rgb, hsv
import cv2
#   读 取 图 片
img = cv2.imread('74.jpg')  # 直接读为灰度图像
#   缩小图像10倍(因为我的图片太大,所以要缩小10倍方便显示)
height, width = img.shape[:2]
size = (256, 256)  # bgr
img = cv2.resize(img, size, interpolation=cv2.INTER_AREA)
#BGR转化为HSV
HSV=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
#鼠标点击响应事件
def getposHsv(event,x,y,flags,param):
    if event==cv2.EVENT_LBUTTONDOWN:
        print("HSV is",HSV[y,x])
def getposBgr(event,x,y,flags,param):
	if event==cv2.EVENT_LBUTTONDOWN:
		print(x,y)
		print("Bgr is",img[y,x])
#
# cv2.imshow("imageHSV",HSV)
cv2.imshow('image',img)
cv2.setMouseCallback("imageHSV",getposHsv)
cv2.setMouseCallback("image",getposBgr)
cv2.waitKey(0)


2. grayscale
import cv2

img=cv2.imread("img/2/74.jpg")
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("gg",gray)
cv2.imwrite("img/2/75.jpg",gray)
cv2.waitKey(0)

3. turn gray rgb
import cv2
import numpy as np

img = cv2.imread('img/2/74.jpg', 1)
img2 = cv2.imread('img/2/75.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]

for i in range(height):
    for j in range(width):
        b = float(img[i, j][0])
        g = float(img[i, j][1])
        r = float(img[i, j][2])

        b1 = (b / (b + g + r))
        g1 = (g / (b + g + r))
        r1 = (r / (b + g + r))

        # 鏂规硶1
        img2[i, j][0] = int(b1 * img2[i, j][0]*3)
        img2[i, j][1] = int(g1 * img2[i, j][0]*3)
        img2[i, j][2] = int(r1 * img2[i, j][0]*3)

cv2.imwrite("img/2/76.jpg",img2)
# cv2.imshow('image1', img2)
# cv2.waitKey(0)


4. expansion, corrosion
import cv2 as cv
import numpy as np
import cv2

def erode(img):
    gray = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
    # 获得结构元素
    # 第一个参数:结构元素形状,这里是矩形
    # 第二个参数:结构元素大小
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
    # 执行腐蚀
    dst = cv.erode(binary, kernel)
    cv.imshow("erode", dst)
    cv2.imwrite("img2/aa11.jpg", dst)

def dilate(img):
    gray = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
    # 获得结构元素
    # 第一个参数:结构元素形状,这里是矩形
    # 第二个参数:结构元素大小
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
    # 执行膨胀
    dst = cv.dilate(binary, kernel)
    cv.imshow("dilate", dst)
    cv2.imwrite("img2/aa22.jpg", dst)

src = cv.imread('img/a.jpg')
erode(src)
dilate(src)
# cv.waitKey(0)
# cv.destroyAllWindows()


The edge detection
#!/usr/bin/env python  
# encoding: utf-8  
import cv2  
import numpy as np 
 
img = cv2.imread("img/19.jpg", 0)  #Canny只能处理灰度图,所以将读取的图像转成灰度图
  
img = cv2.GaussianBlur(img,(3,3),0) #高斯平滑处理原图像降噪 
canny = cv2.Canny(img, 50, 150)     #apertureSize默认为3
 
cv2.namedWindow("Canny",0);
cv2.resizeWindow("Canny", 640, 480);
cv2.imshow('Canny', canny)  
cv2.waitKey(0)  
cv2.destroyAllWindows()  


Guess you like

Origin blog.csdn.net/gm_Ergou/article/details/92845940