简述数字图像处理技术,数字图像处理技术参考文献
单击上面的3358www.Sina.com/,然后选择
xfdds学视觉
或3358www。Sina.com/.
重干货,第一时间送达
俗话说,一图胜千言。但是,如果传达的东西和我们想看到的不一致呢?我们确信它应该来自那个图像,但不幸的是,它并不明显。如果我们可以从一幅图像中找到我们想要了解的背景,并且我们可能会在这个过程中获得额外的见解,那会怎么样?
这就是我们今天要讨论的——图像增强!
图像扩展由一系列细化图像的技术组成。因此,图像更容易在视觉上被感知,相反,它进一步促进了图像处理和分析的改进。图像处理技术包括:
傅里叶变换
白平衡
直方图处理
本文重点研究了使用python进行图像增强的各种白平衡算法。不过,在此之前,我们先记录一下基本库。
importnumpyasnpimportmatplotlib . pyplotaspltfromskimage . ioimportmread,imshow星标
首先,什么是白平衡(WB)?这是一个色彩校正过程,以消除不切实际的色彩偏差,从而确保白色物体正确地出现在我们想要的图像中。实现白平衡的三个技巧。它们如下。
白色补丁算法
灰色世界算法
地面真实算法
为了便于解释,请使用下图。
置顶
该方法是一种典型的颜色恒常性自适应方法。像人类视觉系统的方法一样,搜索最亮的色块作为白色参考。请注意,为了使白色在图像中可见,RGB颜色空间中的每个通道都是最大值。
在Python上实现代码:
efwhite_patch(image,percentile=100)3360 whitebalanceimageusingwhitpatcalgorithm parameters-image 3360 numpyarrayimagetowhiteers optionalpercentilevaluetoconsideraschannel maximum returns-image _ WB 3360 numpyarray white-balanced image _ as _ u bbbbbb
利用白点算法增强lily
正如我们所观察到的,图像变得相对明亮,中间的百合变得非常明亮。这就是白点算法强调图像的方式。接下来,我们来看看下面的算法。
白平衡
灰度算法是一种白平衡方法,假设平均图像是中性灰。如果图像中的颜色分布良好,灰度的世界假设成立。考虑到这个假设成立,所以假设平均反射色是光的颜色。因此,通过观察平均颜色并将其与灰度进行比较,可以估计照明颜色的偏差。
在Python上实现代码:
efgray_world(image)).3360 whitebalanceimageusinggray-world algorithm parameters-image 3360 numpyarrayimagetowhitebalalancererance:_ gray world=(image *(access . mean)/image . mean)axis=)0,
1)))).剪辑(0.255)。astype(int)) #对于具有透明通道的图像if image . shape[2]==4:image _ gray world[:3]=255 return image _ gray world #调用函数实现gray world algorithms KIO . im show(gray _ world(cmdmy))
用灰色世界算法增强Lily
如图,可以看出和原图偏差不大。原因之一可能是平均颜色及其与灰色的比较没有那么显著。然后我们来看最后一个算法。
地面真值算法
到目前为止,我们已经对图像中颜色空间的性能进行了假设。现在,我们将选择一个补丁(图像的一部分)并使用它来重新创建我们想要的图像,而不是对增强图像进行假设。
为此图像选择的补丁如下:
从matplotlib.patches导入Rectanglefig,ax=PLT . subplots()ax . im show(cmdmy)ax . add _ patch(Rectangle((650,550),100,100,edgecolor=b ,face color= none );
补丁(用蓝色边框包围)
补丁的放大图像
选择补丁后,我们现在将继续增强我们的图像。为此,我们可以采取两种方式:
最大值方法-将原始图像的每个通道归一化为区域中每个通道的最大值。
平均方法-将原始图像的每个通道归一化为区域中每个通道的平均值。
Python中的代码实现:
def ground_truth(image,patch,mode=mean ): 使用Ground-truth算法参数的白平衡图像- image : numpy数组图像到白平衡cr patch : numpy数组“t rue”白色模式的patch.mean或max,可选调整每个通道的均值或max以匹配patch返回值- image_wb : numpy数组白平衡图像 Image _ Patch=img _ Patch if mode== mean :Image _ gt=((Image *(Image _ Patch . mean()/ Image . mean(axis=(0,meanclip(0,255)。as type(int))if mode== max :image _ gt=((image * 1.0/image _ patch . max(axis(0,1)))。clip (0,1))# transparency channel if image . shape[2]==4:image _
使用最大值方法:
skio.imshow(ground_truth(cmdmy,img_patch, max ))
使用地面真实算法的图像增强(最大模式)
除了对百合的生动强调,还可以观察到花朵周围的浮叶也被增强,绿色通道被大大突出。让我们看看这与使用平均值作为模式有何不同。
使用平均法:
skio.imshow(ground_truth(cmdmy,img_patch, mean ))
使用地面真实算法的图像增强(平均模式)
输出略接近白色补丁输出,但后者更亮。也强调了百合的颜色,但没有突出浮叶的颜色,只是提亮了。
对于地面真实算法,输出图像在很大程度上依赖于块图像的选择。因此,通过可视化我们想要得到什么样的增强图像来明智地选择补丁。
现在,我们可以使用3种不同的方法来增强图像。
下载1:OpenCV-Contrib扩展模块中文版教程
在“xfdds学视觉
”微信官方账号后台,回复:扩展模块中文教程
,
下载全网首个中文版OpenCV扩展模块教程,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理
等20多个章节。
下载2:Python视觉实战项目52讲
在“xfdds学视觉
”微信官方账号后台,回复:Python视觉实战项目
,
下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别
在内的31个视觉实用项目,帮助快校计算机视觉。
下载3:OpenCV实战项目20讲
在“xfdds学视觉
”微信官方账号后台,回复:OpenCV实战项目20讲
,
,可以基于20
下载20个OpenCV
,实现OpenCV的高级学习。
交换组
欢迎加入读者微信官方账号,与同行交流。目前有SLAM、3D视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群。(以后会逐步细分)。请扫描以下微信号,加群。备注:“昵称学校/公司的研究方向”,例如:“yjddwdm上海交大视觉SLAM”。请按格式备注,否则不能通过。添加成功后,会根据研究方向邀请你进入相关微信群。实战项目
在群里发广告,不然就请你出群。谢谢理解~