Good evening.
I am working on a project that requires rgb to grayscale tuple conversion, however I am getting ("AttributeError: ‘Image’ object has no attribute ‘rgb_to_grayscale’) after uncommenting line 58 of the following code:
import sensor, image, time, math
from pyb import LED,UART,Pin
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQSIF)
sensor.set_auto_gain(True)
sensor.set_auto_whitebal(True)
sensor.set_auto_exposure(True)
sensor.set_contrast(3)
sensor.set_saturation(3)
ImageX = 88
ImageY = 60
letter_thresholds = (0, 50)
color_thresholds = [(30, 100, 15, 127, 15, 127), (30, 100, -64, -8, -32, 32)]
uart = UART(3, 9600, timeout_char=10)
uart.init(9600)
clock = time.clock()
blobHtop = 255
blobHbottom = 255
blobHleft = 0
blobHright = 0
blobHtopleft = 0
blobHtopright = 0
blobHbottomleft = 0
blobHbottomright = 0
blobStop = 0
blobSbottom = 0
blobSleft = 0
blobSright = 0
blobStopleft = 255
blobStopright = 255
blobSbottomleft = 255
blobSbottomright = 255
blobUtop = 255
blobUbottom = 0
blobUleft = 0
blobUright = 0
blobUtopleft = 0
blobUtopright = 0
blobUbottomleft = 255
blobUbottomright = 255
while(True):
clock.tick()
img = sensor.snapshot()
color_blobfound=False
for blob in img.find_blobs(color_thresholds, area_threshold=150, merge=False):
x=1
#sdasdaadsf
img.cartoon(size=1, seed_threshold=1)
img.binary([letter_thresholds], zero=True)
letter_blobfound=False
for blob in img.find_blobs([letter_thresholds], area_threshold=150, merge=False):
if(img.get_statistics(roi=blob.rect()).stdev()<30):
continue
if(max(blob.w(), blob.h())/min(blob.w(), blob.h())<1.6 and blob.cx()+(blob.w()/2)<ImageX and blob.cx()-(blob.w()/2)>0 and blob.cy()-(blob.h()/2)>0 and blob.cy()-(blob.h()/2)<ImageY and math.sqrt(((blob.cx()-(ImageX/2))*(blob.cx()-(ImageX/2)))+((blob.cy()-(ImageY/2))*(blob.cy()-(ImageY/2))))<(ImageY/3)):
letter_blobfound=True
#SimilarityH = 255-((abs(img.rgb_to_grayscale(img.get_pixel(blob.cx(), blob.y()))-blobHtop)+abs(img.rgb_to_grayscale(img.get_pixel(blob.cx(), blob.y()+blob.h()))-blobHbottom)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.cy()))-blobHleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.cy()))-blobHright)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.y()))-blobHtopleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.y()))-blobHtopright)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.y()+blob.h()))-blobHbottomleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.y()+blob.h()))-blobHbottomright))/8)
#SimilarityS = 255-((abs(img.rgb_to_grayscale(img.get_pixel(blob.cx(), blob.y()))-blobStop)+abs(img.rgb_to_grayscale(img.get_pixel(blob.cx(), blob.y()+blob.h()))-blobSbottom)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.cy()))-blobSleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.cy()))-blobSright)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.y()))-blobStopleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.y()))-blobStopright)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.y()+blob.h()))-blobSbottomleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.y()+blob.h()))-blobSbottomright))/8)
#SimilarityU = 255-((abs(img.rgb_to_grayscale(img.get_pixel(blob.cx(), blob.y()))-blobUtop)+abs(img.rgb_to_grayscale(img.get_pixel(blob.cx(), blob.y()+blob.h()))-blobUbottom)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.cy()))-blobUleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.cy()))-blobUright)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.y()))-blobUtopleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.y()))-blobUtopright)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x(), blob.y()+blob.h()))-blobUbottomleft)+abs(img.rgb_to_grayscale(img.get_pixel(blob.x()+blob.w(), blob.y()+blob.h()))-blobUbottomright))/8)
if(color_blobfound==True):
x=1
#asdasodans
elif(letter_blobfound==True):
if(SimilarityS>=SimilarityH and SimilarityS>=SimilarityU):
print('S')
uart.write('S')
elif(SimilarityU>=SimilarityH and SimilarityU>=SimilarityS):
print('U')
uart.write('U')
else:
print('H')
uart.write('H')
else:
print(clock.fps())
uart.write('n')
I have already updated the camera firmware. Do you have any idea of why this could be happening?