Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4720

Troubleshooting • Why it gives me a black image and libpng warning: iCCP

$
0
0
This is my code:

Code:

from picamera2 import Picamera2 import cv2 import numpy as np import timeimport mathimport argparseimport RPi.GPIO as GPIOGPIO.setmode(GPIO.BOARD) PWM_pin   = 32   #Define pin, frequency and duty cycle freq      = 50 dutyCycle = 7.5 #90 degrees at first##Values 0 - 100 (represents 4%, ~27 deg) minv=20maxv=48angles=[90]width=1000height=1333rect1=(0,654)  rect2=(1000,1005) x1s=[]x2s=[]y1s=[]y2s=[]x3s=[]y3s=[]GPIO.setup(PWM_pin, GPIO.OUT) # Create PWM instance for pin w freqency pwm = GPIO.PWM(PWM_pin, freq) # picam2 = Picamera2()    parser=argparse.ArgumentParser(description="lower and upper bound for trying")parser.add_argument('--tim',default=2,help="length of time to run")parser.add_argument('--delay',default=1,help="time between image captures")parser.add_argument('--debug',action='store_true',default=True,help="debug mode")args=parser.parse_args()def get_duty(angle1,angle2):duty1=(1/18)*angle1 +2.2duty2=duty1+0.4*(angle2-angle1)*(1/18)return duty2def get_points(img,debug):if img is None:    print("Error: Unable to load image.")    exit()height, width = (img.shape[:2])def blank(x):  # Null function for trackbarpassmask = np.zeros(img.shape[:2], dtype=np.uint8)mask = cv2.rectangle(mask,rect1,rect2, 255, -1)masked_img = cv2.bitwise_and(img, img, mask=mask)img=masked_imgimg =cv2.GaussianBlur(img, (3, 3), 0)edge = cv2.Canny(img, minv, maxv)lines = cv2.HoughLinesP(edge, 1, np.pi / 180, threshold=100, minLineLength=20, maxLineGap=10)output = img.copy()  # Avoid modifying the original imageif lines is not None:  # Check if lines were detectedfor i in range(len(lines)):for x1, y1, x2, y2 in lines[i]:cv2.line(output, (x1, y1), (x2, y2), (0, 255, 0), 2)print(f'x1:{x1:0.2f}\ty1:{y1:0.2f}\tx2:{x2:0.2f}\ty2:{y2:0.2f}')x1s.append(x1)x2s.append(x1)y1s.append(y1)y2s.append(y2)with open('data.txt', 'a') as f:f.write(f'{x1:0.2f}\t{y1:0.2f}\t{x2:0.2f}\t{y2:0.2f}')f.write('\n')if debug== True:# cv2.imshow('image', img)# cv2.imshow('mask', mask)# cv2.imshow('masked_image', masked_img)cv2.imshow("houghline", output)cv2.waitKey(5000)cv2.destroyAllWindows()  # picam2.stop() return x1s,x2s,y1s,y2sdef get_angle(x1s,x2s,y1s,y2s):passstart_time = time.time() cur_time   = start_time mesg_time  = start_time  i=0while (start_time + args.tim > cur_time):     time.sleep(0.001)             cur_time = time.time() # some short delay to avoid busy waitsif (mesg_time + args.delay < cur_time):i+=1time_1=time.time()mesg_time = cur_time# picam2.start()img = cv2.imread("hallway.jpg") #take picture into memoryheight, width = img.shape[:2]scale = 0.5new_size  = (int(height*scale), int(width*scale))small_img = cv2.resize(img, new_size, interpolation=cv2.INTER_LINEAR) #åä¸ç¼©å°# img_RAM_BGR= cv2.cvtColor(img_RAM,cv2.COLOR_RGB2BGR) #change color #from RGB to BGRdebug=args.debug# if debug == True:# cv2.imshow("picture",img_RAM_BGR)# cv2.waitKey(1000)# cv2.destroyAllWindows()# else:# pass# img_test = cv2.imread("bluetape.jpg")x1s,x2s,y1s,y2s=get_points(small_img,debug) #call functionif debug == True:time_2=time.time() print(f'{time_2-time_1:0.2f}') #print the time it taken to complete the finding angle processangle=get_angle(x1s,x2s,y1s,y2s) ## dutyCycle=get_duty(angle1,angle2) ## pwm.ChangeDutyCycle(dutyCycle) ## if debug ==True:# print(f'PWM:{dutyCycle}')# else:# pass
Here is the error:
/home/ricky/Desktop/lab_deliverable/lab6/hallway.py:26: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(PWM_pin, GPIO.OUT) # Create PWM instance for pin w freqency
QStandardPaths: wrong permissions on runtime directory /run/user/1000, 0770 instead of 0700
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
6.66
0.26
the error happened when I added these lines:

Code:

scale = 0.5new_size  = (int(height*scale), int(width*scale))small_img = cv2.resize(img, new_size, interpolation=cv2.INTER_LINEAR)

Statistics: Posted by ricky2777 — Sun Feb 16, 2025 3:18 pm — Replies 4 — Views 69



Viewing all articles
Browse latest Browse all 4720

Trending Articles