我正在尝试自己实现一个Sobel过滤器。
我得到的结果看起来很像这个(灰色):
但不是这样(黑色)
我试过使用threshold,但感觉不对:
有什么方法可以把灰度变成黑色吗
以下是我在C#中过滤图像的步骤:
>
private static float[][] Sobel3x3Kernel_Horizontal() {重新映射所有值,使其在0~255范围内(否则将出现负值或大于255的值,无法用于执行位图。SetPixel(int x,int y,Color Color)
输出位图结果(灰度)
要复制从维基百科链接的图像,请执行以下步骤:
>
使用Sobel核计算卷积,以获得x导数dx
。
计算另一个卷积以获得y导数dy
(转置内核)。
这两个导数一起形成梯度(每个像素的矢量值)。通过计算sqrt(dx^2 dy^2)
确定震级<代码>^2此处表示正方形。
如果您想要纯黑白结果,请设定结果阈值,否则通过将结果乘以某个值来缩放结果,以便显示的图像对您来说看起来不错。
请注意,您所谓的“灰度图像问题”只是将0值映射到中间灰色(3rd步骤),以便显示负值。这是显示导数的正确方法,否则负值会被剪裁,因此不可见。这些负值是导数的重要组成部分。但这种映射只能用于显示,应始终对原始值进行进一步计算。
问题内容: 你好,我正在将图像从彩色转换为纯黑白,结果是深色图像。我没有原因。以下是我的代码,它受SO上其他代码的启发。任何指导都会有所帮助。 我没有弄错我在做什么。使用任何其他开放源代码库的任何其他想法都可以。 工作::::: 问题答案: 您实际上并没有将彩色图像转换为黑白图像。您正在创建与空白图片相同大小的新空白图片。您实际上需要做一些处理旧图像的操作。
分析、api、re、web、功能测试、oasisengine、核心 分析sonar.sources=src/main analysis.sonar.tests=src/test analysis.sonar.binaries=target/classes analysis.sonar.junit.reportspath=target/surefire-reports analysis.sonar.
问题内容: 我的Java程序一直有问题。用于调整图像大小。您将其放到一个文件夹中并运行它,它会创建一个带有调整大小图像的新文件夹。它在颜色上效果很好,但是在灰度方面存在问题。图像被转换,但是它们变得更亮,更褪色,好像有人弄乱了曲线或水平。所有输入文件和输出文件均为sRGB色彩空间jpeg,以RGB色彩模式保存。我尝试将成千上万个50兆像素的胶片扫描转换为15兆像素或更少。任何人都可以提供的任何帮助
这是我的sonar.properties文件: 公司:MyProject Sonar.ProjectName=MyProject Sonar.ProjectVersion=1.0 Sonar.Language=Java Sonar.SourceEncoding=UTF-8 Sonar.java.CoveragePlugin=Cobertura Sonar.DynamicAnalysis=Reuse
本文向大家介绍C#图像处理之边缘检测(Sobel)的方法,包括了C#图像处理之边缘检测(Sobel)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#图像处理之边缘检测(Sobel)的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。
如果RGB空间被渲染为立方体,则白色、黑色、红色、绿色、蓝色、黄色、洋红和青色将是角;格雷会躺在立方体的中心。 立方体表面的颜色有名字吗? 简单地说,非灰度可以量化为(从[0...1]的r,g和b) 在这里,白色、黑色、红色、橙色等的“非灰色”为1。