python图像处理实战 豆瓣,基于python的数字图像处理

  python图像处理实战 豆瓣,基于python的数字图像处理

  还记得你小学时候学的数字加减法吗?现在,你可以对图像做同样的事情!输入图像可以进行算术运算,例如加法、减法和位运算(与、或、非、异或)。这些操作有助于提高输入照片的质量。本文将详细讲解这些操作,有需要的可以参考。

  00-1010算术运算简介:图像加法算术运算:图像减法位运算

  

目录

  还记得你小学时候学的数字加减法吗?现在,你可以对图像做同样的事情!

  输入图像可以进行算术运算,例如加法、减法和位运算(与、或、非、异或)。这些操作有助于提高输入照片的质量。

  在本文中,您将学习使用OpenCV Python包对图像执行算术和位运算的步骤。我们开始吧!

  对图像进行算术运算是什么意思?

  所以,假设我们想合并两张独立照片中的两个像素。怎么才能把它们结合起来呢?

  让我们想象以下场景。第一个像素的颜色强度是(200,0,0),而第二个像素的颜色强度是(100,0,0)。如果我们只是把这些值相加,我们得到(300,0,0)。在处理RGB图像时,这是完全可能的。

  那么,我们如何用Python解决这个问题呢?

  该解决方案附带了一个OpenCV库,它实现了cv2.add()和cv2.subtract()函数。

  要执行这些操作,您必须在系统上安装OpenCV Python库。

  

介绍

  使用cv2.add()函数,我们可以添加两幅图像。2.cv2.add()将两幅图像中的图片像素相加。这样做时要记住的一点是,两幅图像应该具有相同的深度和类型,或者第二幅图像可以只是一个标量值。

  这个函数的语法是:cv2.add(img1,img2)

  对于这个博客,我们将考虑以下两个图像添加到一起。

  在做算术之前,你必须知道如何读取和显示加载的图像。

  现在,按照下面的代码片段阅读,添加两个图像,最后显示添加的图像。

  导入cv2

  img 1=cv2 . im read( image1 _ add . jpg ,1)

  #或者

  # img 1=cv2 . im read( c : \ \ Users \ \ Admin \ \ Downloads \ \ image1 _ add . jpg ,1)

  cv2.imshow(Image 1 ,img1)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  img 2=cv2 . im read( image2 _ add . jpg ,1)

  #或者

  # img 2=cv2 . im read( c : \ \ Users \ \ Admin \ \ Downloads \ \ image2 _ add . jpg ,1)

  cv2.imshow(图像2 ,img2)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  #添加图像

  added_img=cv2.add(img1,img2)

  cv2.imshow(添加的图像,added_img)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  从上述代码片段添加的图像如下:

  这只是一个简单的加法。我们可以使用另一个名为cv2.addWeighted的函数来混合图像。这类似于图像相加,但是图像被赋予不同的权重以产生混合或透明的错觉。

  这个函数的语法是:cv2.addweighted (img1,wt1,img2,wt2,gamma值)

  根据下面的代码片段对两幅图像执行加权加法。

  导入cv2

  img 1=cv2 . im read( image1 _ add . jpg ,1)

  #或者

  # img 1=cv2 . im read( c : \ \ Users \ \ Admin \ \ Downloads \ \ image1 _ add . jpg ,1)

  cv2.imshow(Image 1 ,img1)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  img2=cv2.imre

  ad(image2_add.jpg, 1)

  #or

  #img2 = cv2.imread(C:\\Users\\Admin\\Downloads\\image2_add.jpg, 1)

  cv2.imshow(Image 2, img2)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  #Addition - weighted addition

  added_wt_img = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)

  cv2.imshow(Added Weight Image, added_wt_img)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  加权加法的输出如下:

  

  在这里,拍摄了两张图像将它们混合在一起。第一张图片的权重为 0.6,第二张图片的权重为 0.4。你可以根据需要更改图像的权重!

  

  

算术运算:图像减法

  就像两个图像相加一样,你可以减去两个图像。这可以使用 cv2.subtract() 函数来完成。请注意,要减去的图像必须具有相同的大小和深度。

  这个函数的语法是:cv2.subtract(src1, src2)

  下面的代码片段显示了如何减去两个图像。已经减去了之前使用的图像(我们在加法中使用的图像)。

  

import cv2

  img1 = cv2.imread(image1_add.jpg, 1)

  #or

  #img1 = cv2.imread(C:\\Users\\Admin\\Downloads\\image1_add.jpg, 1)

  cv2.imshow(Image 1, img1)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  img2 = cv2.imread(image2_add.jpg, 1)

  #or

  #img2 = cv2.imread(C:\\Users\\Admin\\Downloads\\image2_add.jpg, 1)

  cv2.imshow(Image 2, img2)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  sub_img = cv2.subtract(img1, img2)

  cv2.imshow(Subtracted Image, sub_img)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  减去的图像如下:

  

  还尝试减去两个更简单的图像以使其更易于理解。使用的两张图片是:

  

  

  减去的输出是:

  

  既然我们已经了解了如何对图像执行算术运算,我们将继续对图像进行按位运算。

  

  

位运算

  当我们只需要提取图像所需的元素时,我们会使用按位运算。

  这些按位技术用于各种计算机视觉应用,例如创建图像蒙版、将水印应用于图像以及创建新图像。与 OpenCV 中的其他变形方法相比,这些操作对图像中的单个像素起作用,以产生更准确的结果。

  图像上的 And、Or 和 Not 操作

  在开始之前,假设你熟悉三个基本的位运算符:AND、OR、NOT。

  OpenCV 包括用于执行与、或和非操作的内置函数。它们是按位与、按位或和按位非。考虑下面的两张黑白图像。现在让我们将这三个操作应用于这两个图像,看看会发生什么。

  

  

  

import cv2

  #read the images

  img1 = cv2.imread(bitwise_image_1.jpg)

  img2 = cv2.imread(bitwise_image_2.jpg)

  bitwise_AND = cv2.bitwise_and(img1, img2)

  bitwise_OR = cv2.bitwise_or(img1, img2)

  bitwise_NOT = cv2.bitwise_not(img1)

  cv2.imshow(img1, img1)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  cv2.imshow(img2, img2)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  cv2.imshow(AND, bitwise_AND)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  cv2.imshow(OR, bitwise_OR)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  cv2.imshow(NOT, bitwise_NOT)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  上述代码段的输出将如下所示:

  

  

  

  

  

  希望你已经学会了如何使用 OpenCV 对图像进行算术和按位运算。

  以上就是Python中图像算术运算的示例详解的详细内容,更多关于Python图像算术运算的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: