import numpy as np
import cv2
def Read_raw(filename,w,h,m):
#初始化image
image=[]
for i in range(m*h):
image.append([])
for j in range(w):
image[i].append(255)
#读取raw
with open(filename,'rb') as f:
data=f.read()
#写入raw
for i in range(m*h):
for j in range(w):
image[i][j]=data[i*w+j]
print('读取文件{0}成功'.format(filename))
return image
def Write_raw(filename,image):
#将数组image转为bytes
bt=bytearray()
for i in range(len(image)):
for j in range(len(image[i])):
bt.append(image[i][j])
#写入raw
with open(filename,'wb') as f:
f.write(bt)
f.close()
print('写入文件{0}成功'.format(filename))
def Hough(x,y):
all_b=[]
for t in range(180):
temp_theta=np.pi/(t+1)
all_b.append(0)
for i in range(1):
temp_b=y[i]-np.tan(temp_theta)*x[i]
'''
print('b=',temp_b)
print('k=',round(np.tan(temp_theta),2))
print('x=',x[i],'y=',y[i])
'''
def threshold(filename):
im=cv2.imread(filename,0)
im=cv2.GaussianBlur(im,(5,5),0)
canny=cv2.Canny(im,50,150)
temp_x=[]
temp_y=[]
for i in range(len(canny)):
for j in range(len(canny[i])):
if canny[i][j]==255:
temp_x.append(i)
temp_y.append(j)
return temp_x,temp_y
x,y=threshold('lena1.jpg')
Hough(x,y)