'''
Created on 2022年11月26日
@author: sun'xiao'wen
'''
import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
from PIL import Image
os.chdir('D:/AAA大学/3大二上/计算机视觉/第2-7章笔记课件') #此处路径中可以有中文字符
image = cv2.imread("cat.jpg");
top_size,bottom_size,left_size,right_size=(50,50,50,50)
#复制法
replicate=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)
#反射法
reflect=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,cv2.BORDER_REFLECT)
#反射法101
reflect101=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,cv2.BORDER_REFLECT101)
#外包装法
wrap=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,cv2.BORDER_WRAP)
#常量法,需要指定value值,0为黑色
constant=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,cv2.BORDER_CONSTANT,value=0)
#---------展示图片-------------
#plt.subplot()划分坐标区域
#plt.imshow()对图像进行处理
#plt.title()为图像设置标题
plt.subplot(231),plt.imshow(image,'gray'),plt.title('ORIGINAL')#不能用中文
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')
plt.show()
输出结果为
'''
Created on 2022年11月26日
@author: sun'xiao'wen
'''
import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
from PIL import Image
import pylab
from dill.tests.test_mixins import fx
os.chdir('D:/AAA大学/3大二上/计算机视觉/第2-7章笔记课件') #此处路径中可以有中文字符
img_cat = cv2.imread("cat.jpg");
img_dog = cv2.imread("dog.jpg");
img_cat2=img_cat+10#在图像中,给每一个像素点加10
data_cat = np.asarray(img_cat[:5,:,0]);#转换为矩阵,[]内意思是打印前五行即可
data_cat2 = np.asarray(img_cat2[:5,:,0]);
print("cat原图");
print(data_cat);
print("cat加十");
print(data_cat2);
#图像相加
data_cat2pro = np.asarray((img_cat+img_cat2)[:5,:,0]);
#大于255自动对256取余
print("cat和cat2相加1");
print(data_cat2pro);
data_cat2plus = np.asarray(cv2.add(img_cat,img_cat2)[:5,:,0]);
#大于255即输出255
print("cat和cat2相加2");
print(data_cat2plus);
print("cat和dog图片融合");
#img_cat+img_dog 会报错
print(img_cat.shape);
print(img_dog.shape);#输出两图片像素
img_dog=cv2.resize(img_dog,(500,414))
print(img_dog.shape);#dog图修改尺寸后像素
#图像融合
res1=cv2.addWeighted(img_cat,0.4,img_dog,0.6,0)
plt.imshow(res1)
pylab.show()
#对图像尺寸进行操作
res2=cv2.resize(img_cat,(0,0),fx=3,fy=1)#x坐标三倍,y坐标1倍
plt.imshow(res2)
pylab.show()
res3=cv2.resize(img_cat,(0,0),fx=1,fy=3)
plt.imshow(res3)
pylab.show()
输出图像如下