您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python实现ROA算子边缘检测算法

51自学网 2021-10-30 22:46:37
  python
这篇教程python实现ROA算子边缘检测算法写得很实用,希望能帮到您。

python实现ROA算子边缘检测算法的具体代码,供大家参考,具体内容如下

代码

import numpy as npimport cv2 as cvdef ROA(image_path, save_path, threshold): img = cv.imread(image_path) image = cv.cvtColor(img, cv.COLOR_RGB2GRAY) new = np.zeros((512, 512), dtype=np.float64) # 开辟存储空间 width = img.shape[0] heigh = img.shape[1] for i in range(width): for j in range(heigh):  if i == 0 or j == 0 or i == width - 1 or j == heigh - 1:  new[i, j] = image[i, j]  continue  print(image[i, j])  if image[i, j] < 60:  continue  num_sum = 0.0  u1 = (image[i - 1, j - 1] + image[i, j - 1] + image[i + 1, j - 1]) / 3  u2 = (image[i - 1, j + 1] + image[i, j + 1] + image[i + 1, j + 1]) / 3  r12 = 1.0  if float(u2) - 0.0 > 1e6:  r12 = float(u1) / float(u2)  if float(u1) - 0.0 > 1e6:  r12 = float(u2) / float(u1)  num_sum += r12  u1 = (image[i - 1, j - 1] + image[i, j - 1] + image[i - 1, j]) / 3  u2 = (image[i + 1, j] + image[i + 1, j + 1] + image[i, j + 1]) / 3  r12 = 1.0  if float(u2) - 0.0 > 1e6:  r12 = float(u1) / float(u2)  if float(u1) - 0.0 > 1e6:  r12 = float(u2) / float(u1)  num_sum += r12  u1 = (image[i - 1, j - 1] + image[i - 1, j] + image[i - 1, j + 1]) / 3  u2 = (image[i + 1, j - 1] + image[i + 1, j] + image[i + 1, j + 1]) / 3  r12 = 1.0  if float(u2) - 0.0 > 1e6:  r12 = float(u1) / float(u2)  if float(u1) - 0.0 > 1e6:  r12 = float(u2) / float(u1)  num_sum += r12  u1 = (image[i - 1, j] + image[i - 1, j + 1] + image[i, j + 1]) / 3  u2 = (image[i, j - 1] + image[i + 1, j - 1] + image[i + 1, j]) / 3  r12 = 1.0  if float(u2) - 0.0 > 1e6:  r12 = float(u1) / float(u2)  if float(u1) - 0.0 > 1e6:  r12 = float(u2) / float(u1)  num_sum += r12  new[i, j] = num_sum / 4.0  if new[i, j] > threshold:  new[i, j] = 100  print(new[i, j]) print(new) cv.imwrite(save_path, new)if __name__ == "__main__": image_path = r"" save_path = r"" threshold =  ROA(image_path, save_path, threshold)

运算结果

运算前

运算后

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


python实现批量移动文件
python实现批量提取指定文件夹下同类型文件
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。