您的位置:首页 > 文旅 > 旅游 > 开源多用户商城哪个好_手机网站大全观看_网络公司推广方案_海南百度推广开户

开源多用户商城哪个好_手机网站大全观看_网络公司推广方案_海南百度推广开户

2024/12/23 16:35:16 来源:https://blog.csdn.net/h1413517383/article/details/144407577  浏览:    关键词:开源多用户商城哪个好_手机网站大全观看_网络公司推广方案_海南百度推广开户
开源多用户商城哪个好_手机网站大全观看_网络公司推广方案_海南百度推广开户

一, 二值化函数

功能:

用于对图像进行二值化处理

参数:

cv2.threshold(输入你的图像所对应的灰度图,

                      阈值:是浮点还是整数取决予图像的数据类型

                      最大值;高于阈值的像素值,

                      阈值类型:cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、                 cv2.THRESH_TRUNC、cv2.THRESH_TOZERO 和 cv2.THRESH_TOZERO_INV

                                  )

返回值:

二值化的返回值有2个

1:实际使用的阈值

2:二值化的图像

注意:调用二值化函数使用的图像一定要是灰度化后的图像

应用:

import cv2img = cv2.imread("./women.png.")img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret, img_threshold = cv2.threshold(img_gray,120,255,cv2.THRESH_BINARY)print(ret)cv2.imshow("img",img)
cv2.imshow("img_gary",img_gray)
cv2.imshow("img_threshold",img_threshold)
cv2.waitKey(0)

可以通过修改阈值呈现不同的效果

1.使用cv2.THRESH_BINARY

2.使用cv2.THRESH_BINARY_INV

3.使用THRESH_TRUNC

二.自适应二值化函数  功能、参数、返回值、应用

功能:

与二值化算法相比,自适应二值化更加适合用在明暗分布不均的图片

参数:

cv2.adaptiveThreshold(输入你的图像所对应的灰度图,

                                       最大值,#通常为255

                                       自适应方法,#cv2.ADAPTIVE_THRESH_MEAN_C   |                                                                            cv2.ADAPTIVE_THRESH_GAUSSIAN_C

                                       二值化类型,

                                       核的大小:最好是奇数

                                       最终的阈值:从计算出的平均值或加权和中减去的常数

返回值:

自适应二值化的图像

应用:

import cv2img = cv2.imread("./women.png.")img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)img_adapt = cv2.adaptiveThreshold(img_gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,3)cv2.imshow("img",img)
cv2.imshow("img_gary",img_gray)
cv2.imshow("img_threshold",img_adapt)
cv2.waitKey(0)

可以通过修改阈值和自适应方法呈现不同的效果

1.cv2.ADAPTIVE_THRESH_GAUSSIAN_C

2.cv2.ADAPTIVE_THRESH_MEAN_C

三,腐蚀函数

功能:

将二值化图像中的白色部分尽可能的压缩

参数:

cv2.erode(读取图片,

                   kernel: 结构元素,核,

                   iterations: 迭代次数,次数越多效果越明显

                    )

kernel:

cv2.getStructuringElement(cv2.MORPH_ELLIPSE,

                                                (3, 3)大小

)

返回值:

腐蚀后的图像

应用:

import cv2img = cv2.imread("./123.png.")kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))img_erode = cv2.erode(img,kernal)cv2.imshow("img",img)
cv2.imshow("img_gary",img_erode)
cv2.waitKey(0)

四,膨胀函数

功能:

将二值化图像中的白色部分尽可能的扩张

参数:

cv2.dilate(

                        读取图片,

                   kernel: 结构元素,核,

                   iterations: 迭代次数,次数越多效果越明显

)

返回值:

膨胀后的图片

应用:

import cv2img = cv2.imread("./123.png.")kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))img_dilate = cv2.dilate(img,kernal)cv2.imshow("img",img)
cv2.imshow("img_gary",img_dilate)
cv2.waitKey(0)

五,仿射变换函数

 功能:

用于对图像进行仿射变换(Affine Transformation)的函数,仿射变换包括平移、旋转、缩放以及剪切等操作。

参数:

cv2.warpAffine(输入的图像,

                        变换矩阵,:通过其他函数(如 cv2.getRotationMatrix2D())计算得到的,用于描述仿射变换

                        输出图像的大小,

                        插值方法(默认为线性),:cv2.INTER_LINEAR(线性插值)、cv2.INTER_NEAREST(最近邻插值)、cv2.INTER_CUBIC(三次样条插值)

                        边缘填充方法,:cv2.BORDER_CONSTANT(常量填充)、cv2.BORDER_REFLECT(反射)、cv2.BORDER_REFLECT_101(反射101)

                        边界颜色 :borderMode 为 cv2.BORDER_CONSTANT

)

cv2.getRotationMatrix2D(center:旋转的中心点, angle:旋转角度, scale:缩放因子)

返回值:

输出图像

应用:

import cv2img = cv2.imread("./women.png")M = cv2.getRotationMatrix2D((img.shape[1]/2,img.shape[0]/2),45,0.5)
img_warp = cv2.warpAffine(img,M,(700,700),flags=cv2.INTER_LINEAR,borderMode=cv2.BORDER_WRAP)cv2.imshow("img",img)
cv2.imshow("img_gary",img_warp)
cv2.waitKey(0)

修改缩放因子

六,透视变换函数

功能:

用于对图像进行透视变换的函数

而透视变换是把一个图像投影到一个新的视平面的过程

参数:

cv2.warpPerspective(src, M, dsize, dst=None, flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT, borderValue=None)

cv2.warpPerspective(输入图像,

                                    透视变换矩阵,

                                    输出图像的尺寸,

                                    输出图像,这是一个可选参数。

                                     插值方法,:cv2.INTER_LINEAR(线性插值)、cv2.INTER_NEAREST(最近邻插值)、cv2.INTER_CUBIC(三次样条插值)

返回值:

图像

应用:

import cv2
import numpy as npimg = cv2.imread("./223.png")points1 = np.array([[80, 300], [950, 50], [150, 620], [1060,400]],dtype=np.float32)points2 = np.array([[0, 0], [img.shape[1], 0], [0, img.shape[0]], [img.shape[1], img.shape[0]]],dtype=np.float32)
M = cv2.getPerspectiveTransform(points1, points2)img_warp = cv2.warpPerspective(img, M,(img.shape[1], img.shape[0]))cv2.imshow("img",img)
cv2.imshow("img1",img_warp)
cv2.waitKey(0)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com