题目:
1.读取灰度图
2. 灰度图:
绘制黑色方块、黑白棋盘格、白色三角块
3.彩色图:
绘制红色圆盘、白色椭圆轮廓
代码:
灰度图:
#python
import cv2
img = cv2.imread('lena_512.jpg')
gray = img[:,:,0]
blue = img[:,:,0]
green = img[:,:,1]
red = img[:,:,2]
[h,w]=img.shape[:2]
for i in range(h):
for j in range(w):
gray[i,j]=blue[i,j]*0.114+green[i,j]*0.587+red[i,j]*0.299
cv2.imshow('image',gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
% matlab
img =imread('cat.jpg');
gray=img(:,:,1);
blue=img(:,:,1);
green=img(:,:,2);
red=img(:,:,3);
[h,w]=size(img);
for i=1:h
for j=1:w/3
gray(i,j)=blue(i,j)*0.114+green(i,j)*0.587+red(i,j)*0.299;
end
end
imshow(gray)
画方块
#python
import cv2
img = cv2.imread('lena_512.jpg')
h,w = img.shape[:2]
x = h//3
y = w//3
for i in range(x,2*x):
for j in range(y,2*y):
img[i,j,:]=255
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
% matlab
[a,b]=size(gray);
x=floor(a/3);
y=floor(b/3);
for i=x:2*x
for j=y:2*y
gray(i,j)=255;
end
end
imshow(gray);
画红圆
#python
import cv2
img = cv2.imread('lena_512.jpg')
h,w = img.shape[:2]
x = h//3
y = w//3
for i in range(h):
for j in range(w):
if (pow((x-i)*(x-i)+(y-j)*(y-j),0.5)<50):
img[i,j,0] = 0
img[i,j,1] = 0
img[i,j,2] = 255
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
%matlab
img=imread('cat.jpg');
[h,w]=size(img);
x = floor(h/2);
y = floor(w/6);
for i=1:h
for j=1:w/3
if (x-i)*(x-i)+(y-j)*(y-j)<2500
img(i,j,1) = 255;
img(i,j,2) = 0;
img(i,j,3) = 0;
end
end
end
imshow(img)
画三角块
画黑白棋盘格
画椭圆