日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

halcon 单通道图像转成3通道_halcon图像处理基本运算

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 halcon 单通道图像转成3通道_halcon图像处理基本运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

halcon圖像處理基本運算

圖像處理最基本的操作包括顏色空間轉換,各種代數運算,放射變換等。通過熟悉這些常見的操作,可以對圖像有基本的認識,尤其是對剛開始接觸視覺圖像處理的人而言,熟悉這些操作,可以快速對圖像有一個了解。比如能夠明白RGB模型,HSI模型、HSV模型等這些顏色空間模型。能夠對灰度圖、彩色圖有一定的認識,同時也能理解圖像的位數、通道等概念。通過代數運算,能夠明白圖像處理其實就是對一堆二維矩陣數字進行運算。代數運算可以了解圖像的數據類型,有的圖像是用byte類型表示的像素值,有的使用int表示,有的是用real表示,對于某些操作,有一定的數據類型的限制。放射變換可以了解圖像的平移、旋轉等概念。

RGB一般是24位彩色圖像,顏色數量共有224種。RGB圖像由紅、綠、藍三個通道組成,每個通道的圖像是一個二維數字矩陣,每個數字用8位來存儲,一個像素占24位,所以是24位圖像?;叶葓D是RGB三個分量中的值相等,即R=G=B。這三個值相等的時候,顯示出來的圖像就只有亮度信息,看起來就像是黑白圖像。由于RGB三個通道的值相等,因此,灰度圖只需要存儲一個通道的數字,所以只需要用8位來存儲一個像素的值,所以我們一般稱為8位灰度圖。RGB圖像可以轉換成灰度圖像,有多種轉換方式,常見的是對每個RGB分量設定一定的權重,然后三個分量求和得到灰度值。有時候也可以分別提取RGB的每個分量來進行圖像處理,每個分量單獨顯示的時候,看起來也是灰度圖,只是三個分量分別凸顯的原RGB圖像的特征有一些不同,如果進行圖像處理,就要看下哪個分量能夠更加凸顯圖像的特征,這是就取哪個分量來進行圖像處理。同樣的方式適用于HSI或HSV顏色模型。HSI或HSV也表示的圖像三個分量,只是這個分量分別表示的圖像的色調(hue)、色飽和度(saturation)和強度(intensity)或明亮值(value)。HSI和HSV只是I和V不一樣,I=(R+G+B) / 3,是RGB三個分量的平均值,V = max(max(R,G),B)是RGB三個分量的最大值。由于I和V的不同,也使得S的值有所不同。

? ? ? ? ? ?圖1 RGB顏色模型

? ? ? ? ? ?圖2 HSI顏色模型

圖像代數運算主要是指圖像的加減乘除、對數、三角函數、指數、冪運算等,通過這些操作,熟悉圖像處理實際上是對數字矩陣的處理。當然,這些運算在實際的圖像處理時也是有用的,這需要根據圖像來判斷到底用什么方法。通過圖像代數運算,也可以了解圖像的數據類型,有的運算需要int數據,有的運算需要real數據,有的運算所有數據類型都可以運算。

放射變換是指圖像的平移、旋轉等變換。通過放射變換,可以了解圖像變換的原理,實際上就是一個變換矩陣,通過變換矩陣實現坐標位置的改變。其中尤其是旋轉變換比較重要,因此,在實際的圖像處理中,由于各種原因,需要檢測的圖像的特征部分不一定是水平或垂直放置的,這時候就需要通過一定的旋轉變換,將特征旋轉到水平位置或垂直位置。

下面通過一個具體的例子,來看下在halcon里面怎么實現上面的操作。所用到的圖像就以halcon自帶的一張圖像為例。

? ? ? ? ? 圖3 待處理的原圖

? ? ? ? ? ?圖4 所有處理的結果圖像

*讀取一張彩色圖像

read_image (Image,'blister/blister_reference')

*得到圖像通道數

count_channels(Image,Channels)

*彩色圖像轉灰度圖

rgb1_to_gray(Image, GrayImage)

*彩色圖像分離為三個通道圖像

decompose3(Image,R,G,B)

*RGB轉HSV和HSI

trans_from_rgb(R,G,B,H1,S1,V1,'hsv')

trans_from_rgb(R,G,B,H2,S2,I2,'hsi')

*HSV和HIS轉RGB

trans_to_rgb(H1,S1,V1,ImageRed, ImageGreen,ImageBlue, 'hsv')

trans_to_rgb(H2,S2,I2,ImageRed1,ImageGreen1, ImageBlue1, 'hsi')

*將轉換后的單通道RGB合并成RGB彩色圖

compose3(ImageRed,ImageGreen,ImageBlue,ImageRGB)

*圖像均值模糊

mean_image(GrayImage,ImageMean, 9, 9)

*圖像相加,相減,相減的絕對值,線性拉伸,圖像相乘除

add_image(GrayImage, ImageMean,ImageResult, 0.5, 0)

sub_image(GrayImage,ImageMean,ImageSub, 1,128)

abs_diff_image(GrayImage,ImageMean,ImageAbsDiff,1)

scale_image(ImageAbsDiff, ImageScaled, 5,20)

mult_image(GrayImage,ImageMean,ImageResult1,0.005, 0)

div_image(GrayImage,ImageMean,ImageResult2,255, 0)

*指數、gamma變換、圖像反轉、對數、冪、開方

exp_image(GrayImage,ExpImage, 'e')

gamma_image(GrayImage,GammaImage,0.416667,0.055, 0.0031308, 255, 'true')

invert_image(GrayImage,ImageInvert)

log_image(GrayImage,LogImage, 'e')

pow_image(GrayImage,PowImage, 2)

sqrt_image(GrayImage,SqrtImage)

pow_image(SqrtImage, PowImage1, 3)

*圖像數據格式轉換

convert_image_type(GrayImage,ImageConverted,'real')

*三角函數運算

sin_image(ImageConverted, SinImage)

cos_image(ImageConverted,CosImage)

tan_image(ImageConverted,TanImage)

asin_image(SinImage,ArcsinImage)

acos_image(CosImage,ArccosImage)

atan_image(TanImage,ArctanImage)

*取兩幅圖像的最大值或最小值

max_image(GrayImage,ImageMean,ImageMax)

min_image(GrayImage,ImageMean,ImageMin)

*創建一個單位變換矩陣,每次根據創建的平移或、旋轉或縮放矩陣對圖像進行平移、旋轉、縮放操作

hom_mat2d_identity(HomMat2DIdentity)

*創建平移矩陣

hom_mat2d_translate(HomMat2DIdentity,20,50,HomMat2DTranslate)

*圖像平移

affine_trans_image(GrayImage,ImageAffineTrans,HomMat2DTranslate, 'constant', 'false')

get_image_size(GrayImage,Width, Height)

*創建旋轉矩陣

hom_mat2d_rotate(HomMat2DIdentity,rad(45),Width/2,Height/2, HomMat2DRotate)

*圖像旋轉

affine_trans_image(GrayImage,ImageAffineTrans1,HomMat2DRotate, 'constant', 'false')

*創建縮放矩陣

hom_mat2d_scale(HomMat2DIdentity, 2, 1.5,Width/2, Height/2, HomMat2DScale)

*圖像縮放

affine_trans_image(GrayImage,ImageAffineTrans2,HomMat2DScale, 'constant', 'false')

*根據圖像得到的region,通過計算中心和方向,利用vector_angle_to_rigid得到變換矩陣,然后進行圖像放射變換

threshold(GrayImage,Region, 128, 255)

shape_trans(Region, RegionTrans, 'convex')

orientation_region(RegionTrans, Phi)

area_center(RegionTrans, Area, Row, Column)

vector_angle_to_rigid(Row, Column, Phi,Row, Column, 0, HomMat2D)

affine_trans_image(GrayImage,ImageAffineTrans3,HomMat2D, 'constant', 'false')

總結

以上是生活随笔為你收集整理的halcon 单通道图像转成3通道_halcon图像处理基本运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。