
正文
dct变换java代码 dct 变换
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
经过DCT变换后为什么图像的字节数反而增多
DTE和DCE的区分实事上只是针对串行端口的,路由器通常通过串行端口连接广域网络。
串行V.24端口(25针)通常规定DTE由第2根针脚作为TXD(发送数据线),第3根针脚为RXD(接收数据线),(其余针脚为:7是信号地线,4是DTS,5是RTS,6是DTR,8是DCD,以及包括发送时钟、接收时钟等等,都有规定具体的针脚),串行V.35(34针)是路由器通常采用的通信接口标准,但是V.35是采用差分信号进行传输的,发送和接受分别由2根信号线承担。而DCE设备通常是与路由器对接,因此针脚的分配相反,也就是2是接收(但也被称为TXD),3是发送。因此路由器通常是DTE设备,modem、GV转换器等等传输设备通常被规定为DCE。其实对于标准的串行端口,通常从外观就能判断是DTE还是DCE,DTE是针头(俗称公头),DCE是孔头(俗称母头),这样两种接口才能接在一起。
相关问答
Q1: 在C++中对音频实现dwt变换该怎么办,有没有像opencv那种第三方库?
整个项目的结构图:
编写DetectFaceDemo.java,代码如下:
[java] view
plaincopyprint?
package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我们将第一个字符去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}
// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我们将第一个字符去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}
// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
3.编写测试类:
[java] view
plaincopyprint?
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//运行结果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//运行结果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
Q2: MATLAB的DCT变换 利用MATLAB对一副8×8的图像进行DTC变换,并保留20个DCT变换系数
用matlab对一张图片进行DFT变换,DCT变换,比较保留20个DCT变换系数重构的图象与原始图像的差别.-Using matlab on a picture to DFT transform, DCT transform, compared to 20 DCT transform coefficients to retain ...
Q3: matlab 图像dct变换
[A,map]=imread('******');
%显示原图
imshow(A,map),
title('原图');
image=double(A);
N=8;
for x=1,
a(x)=sqrt(1/N);
end,
for x=2:8,
a(x)=sqrt(2/N);
end,
%dct
rimage=zeros(8,8);
for x=1:32,
for y=1:32,
for u=1:N,
for v=1:N,
for i=1:N,
for j=1:N,
rimage(i,j)=image(i+(x-1)*8,j+(y-1)*8);
b(i,j)=rimage(i,j).*cos((2*(i-1)+1)*(u-1)*pi/(2*N)).*cos((2*(j-1)+1)*(v-1)*pi/(2*N));
end,
end,
d(u,v)=sum(sum(b,1),2);
C(u,v)=a(u).*a(v).*d(u,v);
end,
end,
xhimage{x,y}=C;
end,
end,
aa=zeros(8,8);
b1=zeros(256,256);
for x=1:32,
for y=1:32,
aa=xhimage{x,y};
for i=1:8,
for j=1:8,
b1(i+(x-1)*8,j+(y-1)*8)=aa(i,j);
end,
end,
end,
end,
figure,imshow(uint8(b1));title('DCT');
Q4: 数字图像处理及算术编码(或DCT压缩编码)仿真实现
1)数字图像dct变换java代码的变换dct变换java代码:普通傅里叶变换(ft)与逆变换(ift)、快速傅里叶变换(fft)与逆变换(ifft)、离散余弦变换(DCT)dct变换java代码,小波变换。
2) 数字图像直方图的统计及绘制等;
clc;
Y=imread('C:\zhengzhi.jpg');
length(size(Y))==3
s=rgb2gray(Y);
imshow(Y);
title('原图'); %figure1
Y=rgb2gray(Y);
figure;imshow(Y);title('原始图像'); % figue2
[J,T] = histeq(Y);
figure;imshow(J);title('增强图像'); % figue3
figure ;imhist(Y,64);title('原始图像直方图'); % figue4
figure ;imhist(J,64);title('均衡化图像直方图');% figue5
clear all;
Y=imread('C:\zhengzhi.jpg');%导入图片%傅里叶变换
Y=rgb2gray(Y);
figure(1);
imshow(Y);
title('灰度化后的图像');
Y1=fftshift(fft2(Y));
figure(2);
Y2=abs(Y1);
imshow(Y2,[]);
title('傅里叶变换的图像');
figure(3);
Y2=abs(ifft2(Y1))/255;
imshow(Y2);
title('傅里叶逆变换的图像');
J=fft2(double(s));%快速傅里叶变换
K=fftshift(fft2(double(s)));
F=ifft2(K);%快速傅里叶变换
figure; %figure6
imshow(J);
title('FFT变换结果');
figure; %figure7
imshow(log(abs(K)+1),[]);
title('零点平移');
figure; %figure8
imshow(abs(F),[]);
title('IFFT变换结果');
% 图象的DCT变换
RGB=imread('C:\zhengzhi.jpg');
figure;%figure9
subplot(1,2,1)
imshow(RGB);
title('彩色原图');
a=rgb2gray(RGB);
subplot(1,2,2)
imshow(a);
title('灰度图');
figure;%figure10
b=dct2(a);
imshow(log(abs(b)),[]),colormap(jet(64)),colorbar;
title('DCT变换结果');
figure;%figure11
b(abs(b)10)=0;
% idct
c=idct2(b)/255;
imshow(c);
title('IDCT变换结果')
小波变换
clear
I= imread('C:\zhengzhi.jpg');
X=rgb2gray(I);
subplot (121) ;
imshow(X);
title ('原始图像') ;%画出原图像
[c,s] =wavedec2 (X, 2, 'sym4') ;
%进行二层小波分解
len = length ( c) ;%处理分解系数,突出轮廓,弱化细节
for I = 1: len
if (c( I )350)
c( I ) = 2*c (I ) ;
else
c( I ) = 0.5*c( I ) ;
end
end
nx =waverec2 ( c, s, 'sym4') ;
%分解系数重构
subplot(122) ;
image( nx) ;
title('增强图像')
%画出增强图像
Q5: 做8×8分块的DCT变换 是什么意思?
就是将图片分成8*8dct变换java代码的较小输入方针dct变换java代码,再对每块做DCT变换dct变换java代码,常用dct变换java代码的函数是D=dctmtx(N)
dct变换java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于dct 变换、dct变换java代码的信息别忘了在本站进行查找喔。







