发布于2020-03-09 15:28 阅读(808) 评论(0) 点赞(18) 收藏(3)
以APMCM2019年的A题,该题目要求我们从这样的图片中提取出二氧化硅晶体。
提取方法
同态滤波
该方法在博客中有详细说明。主要思想是:
图像
之后使用高通滤波器对图像滤波,其形式为
具体代码
import cv2
from matplotlib import pyplot as plt import numpy as np
def homomorphic_filter(src, d0=10, r1=0.5, rh=2, c=4, h=2.0, l=0.5): gray = src.copy()
if len(src.shape) > 2:
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) gray = np.float64(gray)
rows, cols = gray.shape2))
gray_fft = np.fft.fft2(gray) gray_fftshift = np.fft.fftshift(gray_fft)
dst_fftshift = np.zeros_like(gray_fftshift)
M, N = np.meshgrid(np.arange(-cols // 2, cols // 2), np.arange(-rows // 2, rows //
D = np.sqrt(M ** 2 + N ** 2)
Z = (rh - r1) * (1 - np.exp(-c * (D ** 2 / d0 ** 2))) + r1 dst_fftshift = Z * gray_fftshift
dst_fftshift = (h - l) * dst_fftshift + l dst_ifftshift = np.fft.ifftshift(dst_fftshift) dst_ifft = np.fft.ifft2(dst_ifftshift)
dst = np.real(dst_ifft)
dst = np.uint8(np.clip(dst, 0, 255)) return dst
for i in range(497, 611, 1): j = i
i = '.\\data\\0' + str(i) + '.bmp' img = cv2.imread(i, 0)
img2 = homomorphic_filter(img) z = j
i = '.\\results\\0' + str(j) + '.bmp' cv2.imwrite(i, img2)
i = z
效果为
拉普拉斯锐化
具体内容在博客有,主要思想是利用拉普拉斯算子,即
锐化图像边缘,代码为
import cv2 as cv
for i in range(497, 611, 1): j = i
i = '.\\data\\0' + str(i) + '.bmp'
img = cv.imread(i, cv.COLOR_BGR2GRAY) img2 = cv.Laplacian(img, ddepth=-1, ksize=3) imgOut = img - img2
z = j
i = '.\\results\\0' + str(j) + '.bmp' cv.imwrite(i, imgOut)
i = z
然后使用cv包检测边缘,代码为
import cv2 as cv
for i in range(497, 611, 1): m = i
i = '.\\data\\0' + str(i) + '.png' img = cv.imread(i)
col = img.shape[0] row = img.shape[1] img2 = img.copy()
img2 = cv.cvtColor(img2, cv.COLOR_BGR2GRAY) for j in range(col):
for k in range(row):
if img.item(j, k, 2) > 150 and img.item(j, k, 0) < 100 and img.item(j, k,1) < 100:k, 1) < 130:
z = m
img2.itemset((j, k), 255)
elif img.item(j, k, 2) > 180 and img.item(j, k, 0) < 130 and img.item(j,
img2.itemset((j, k), 255)
else:
img2.itemset((j, k), 0)
i = '.\\results\\0' + str(m) + '.bmp' cv.imwrite(i, img2)
i = z
结果为
效果添加了一些人工辅助,然后我们就可以进行后续的计算了。
作者:众神之战
链接:https://www.pythonheidong.com/blog/article/248748/cd6c546698c1dbe874dd/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!