OpenCV圖片沿對角線調換

OpenCV圖片沿對角線調換

1、在學習左上角和右下角對調之前,我們有必要了解一下什麼是水平方向對調圖片豎直方向對調圖片
2、在開始圖片對調之前,我們思考一下這個問題
元素位置互換圖
我們將A1和B7進行互換,A2和B6進行互換,以此類推,將A組元素和B組元素對角線互換,得到新的A和B,我們對圖片進行的對角線調換也是這個原理。
3、代碼實現:


			
			import cv2 as cv
			import numpy as np
			
			# 要進行調換的圖片
			img = cv.imread("D:/img/pic (1).png",1)
			# 獲取圖片基本信息
			imgInfo = img.shape
			height = imgInfo[0]
			width = imgInfo[1]
			mode = imgInfo[2]
			
			# 獲取原圖的第一個鏡像爲了下面以橫軸爲主進行調換操作
			dst1 = np.zeros(imgInfo,np.uint8)
			np.copyto(dst1,img)
			
			# 獲取原圖的第二個鏡像爲了下面以橫軸爲主進行調換操作
			dst2 = np.zeros(imgInfo,np.uint8)
			np.copyto(dst2,img)
			
			# 展示原圖像
			cv.imshow("img",img)
			
			# 以橫軸爲主進行圖像對角調換
			for i in range(0,width):
			    # 此處的分界點是豎直方向的一半
			    for j in range(0,int(height/2)):
			        dst1[i][j] += dst1[width-1-i][height-1-j]
			        dst1[width-1-i][height-1-j] = dst1[i][j] -  dst1[width-1-i][height-1-j]
			        dst1[i][j] -=  dst1[width-1-i][height-1-j]
			
			# 以縱軸爲主進行對角調換
			for i in range(0,height):
			    # 此處的分界點是水平方向的一半
			    for j in range(0,int(width/2)):
			        dst2[i][j] += dst2[width-1-i][height-1-j]
			        dst2[width-1-i][height-1-j] = dst2[i][j] -  dst2[width-1-i][height-1-j]
			        dst2[i][j] -=  dst2[width-1-i][height-1-j]
			# 展示調換後的圖一和圖二
			cv.imshow("dst1",dst1)
			cv.imshow("dst2",dst2)
			cv.waitKey(0)
			cv.destroyAllWindows()


上述代碼運行結果如下圖所示:
圖片沿對角線互換之後運行的結果i
總結,從簡單的換位置思考這個問題更容易上手,此圖和該圖旋轉360度得到的圖像應該是一直的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章